From f1e211ac2d51919e06311e937c445f01c8fcd535 Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Thu, 7 Nov 2019 15:41:15 +0530 Subject: [PATCH 01/18] Add blur background support --- app/build.gradle | 5 +- app/src/main/AndroidManifest.xml | 1 + .../e/blisslauncher/core/Utilities.java | 34 ++++ .../core/blur/BlurWallpaperProvider.java | 172 ++++++++++++++++++ .../core/customviews/HorizontalPager.java | 3 +- .../features/launcher/LauncherActivity.java | 33 ++-- app/src/main/res/layout/activity_main.xml | 2 +- 7 files changed, 236 insertions(+), 14 deletions(-) create mode 100644 app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java diff --git a/app/build.gradle b/app/build.gradle index 7f0cc5c1f0..2c087da3e0 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,7 +4,7 @@ apply plugin: 'io.fabric' // Manifest version information! def versionMajor = 1 def versionMinor = 2 -def versionPatch = 3 +def versionPatch = 4 android { compileSdkVersion rootProject.ext.compileSdkVersion @@ -110,6 +110,9 @@ dependencies { // Rx Relay implementation "com.jakewharton.rxrelay2:rxrelay:${rootProject.ext.rxRelayVersion}" + // Blur Library + implementation 'com.hoko:hoko-blur:1.3.4' + // Room implementation "android.arch.persistence.room:runtime:1.1.1" annotationProcessor "android.arch.persistence.room:compiler:1.1.1" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1f225ac514..57caa8ee7b 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -31,6 +31,7 @@ + 0) { + width = height = fallbackSize; + } else { + return null; + } + } + + Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); + + Canvas canvas = new Canvas(bitmap); + drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + drawable.draw(canvas); + return bitmap; + } } diff --git a/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java new file mode 100644 index 0000000000..e45ff4024c --- /dev/null +++ b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java @@ -0,0 +1,172 @@ +package foundation.e.blisslauncher.core.blur; + +import android.Manifest; +import android.app.WallpaperManager; +import android.content.Context; +import android.content.pm.PackageManager; +import android.graphics.Bitmap; +import android.support.v4.app.ActivityCompat; +import android.util.DisplayMetrics; +import android.view.Display; +import android.view.WindowManager; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.processor.BlurProcessor; + +import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import foundation.e.blisslauncher.core.Utilities; + +public class BlurWallpaperProvider { + + private final Context context; + private final WallpaperManager wallpaperManager; + + private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors(); + private static final int CORE_POOL_SIZE = CPU_COUNT + 1; + private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1; + private static final int KEEP_ALIVE = 1; + + public static final Executor THREAD_POOL_EXECUTOR = new ThreadPoolExecutor( + CORE_POOL_SIZE, MAXIMUM_POOL_SIZE, KEEP_ALIVE, + TimeUnit.SECONDS, new LinkedBlockingQueue<>()); + private final BlurProcessor blurProcessor; + + private ExecutorService mDispatcher = Executors.newSingleThreadExecutor(); + + private final Runnable updateRunnable = () -> updateWallpaper(); + + private DisplayMetrics displayMetrics = new DisplayMetrics(); + + private static final float SAMPLE_FACTOR = 4.0f; + + private static BlurWallpaperProvider sInstance; + private Bitmap wallpaper; + private volatile Future mFuture; + private Listener listener; + + private BlurWallpaperProvider(Context context) { + this.context = context; + this.wallpaperManager = WallpaperManager.getInstance(context); + blurProcessor = HokoBlur.with(context).sampleFactor(SAMPLE_FACTOR) + .scheme(HokoBlur.SCHEME_OPENGL) + .mode(HokoBlur.MODE_GAUSSIAN) + .forceCopy(false) + .needUpscale(true) + .processor(); + init(); + listener = (Listener) context; + } + + public static BlurWallpaperProvider getInstance(Context context) { + if (sInstance == null) { + sInstance = new BlurWallpaperProvider(context); + } + return sInstance; + } + + private void init() { + updateAsync(); + } + + private void updateAsync() { + THREAD_POOL_EXECUTOR.execute(updateRunnable); + } + + private void updateWallpaper() { + if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + // TODO: Consider calling + // ActivityCompat#requestPermissions + // here to request the missing permissions, and then overriding + // public void onRequestPermissionsResult(int requestCode, String[] permissions, + // int[] grantResults) + // to handle the case where the user grants the permission. See the documentation + // for ActivityCompat#requestPermissions for more details. + return; + } + wallpaper = Utilities.drawableToBitmap(wallpaperManager.getFastDrawable(), true); + //wallpaper = scaleToScreenSize(wallpaper); + } + + + public void blur(int radius) { + cancelPreTask(false); + mFuture = mDispatcher.submit(new BlurTask(wallpaper, blurProcessor, radius) { + @Override + void onBlurSuccess(Bitmap bitmap) { + if (bitmap != null && listener != null) { + listener.onBlurSuccess(bitmap); + //bitmap.recycle(); + } + } + }); + } + + public void cancelPreTask(boolean interrupt) { + if (mFuture != null && !mFuture.isCancelled() && !mFuture.isDone()) { + mFuture.cancel(interrupt); + mFuture = null; + } + } + + private Bitmap scaleToScreenSize(Bitmap wallpaper) { + WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); + Display display = wm.getDefaultDisplay(); + display.getRealMetrics(displayMetrics); + + int width = displayMetrics.widthPixels; + int height = displayMetrics.heightPixels; + + float widthFactor = ((float) width) / wallpaper.getWidth(); + float heightFactor = ((float) height) / wallpaper.getHeight(); + + float upscaleFactor = Math.max(widthFactor, heightFactor); + + if (upscaleFactor <= 0) { + return wallpaper; + } + + int scaledWidth = (int) Math.max(width, (wallpaper.getWidth() * upscaleFactor)); + int scaledHeight = (int) Math.max(height, (wallpaper.getHeight() * upscaleFactor)); + + return Bitmap.createScaledBitmap(wallpaper, scaledWidth, scaledHeight, false); + } + + public interface Listener { + void onBlurSuccess(Bitmap bitmap); + } + + public void clear(){ + listener = null; + cancelPreTask(true); + sInstance = null; + } + + private abstract static class BlurTask implements Runnable { + private Bitmap bitmap; + private BlurProcessor blurProcessor; + private int radius; + + BlurTask(Bitmap bitmap, BlurProcessor blurProcessor, int radius) { + this.bitmap = bitmap; + this.blurProcessor = blurProcessor; + this.radius = radius; + } + + @Override + public void run() { + if (bitmap != null && !bitmap.isRecycled() && blurProcessor != null) { + blurProcessor.radius(radius); + onBlurSuccess(blurProcessor.blur(bitmap)); + } + } + + abstract void onBlurSuccess(Bitmap bitmap); + } +} diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java b/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java index 05b11708a8..c57a89619c 100755 --- a/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java @@ -156,9 +156,10 @@ public class HorizontalPager extends ViewGroup { for (OnScrollListener mListener : mListeners) { int adjustedScrollX = getScrollX() + pageWidthPadding(); - mListener.onScroll(adjustedScrollX); if (adjustedScrollX % pageWidth == 0) { mListener.onViewScrollFinished(adjustedScrollX / pageWidth); + } else { + mListener.onScroll(adjustedScrollX); } } } diff --git a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java index a2a2a91182..79e1568dda 100755 --- a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java +++ b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java @@ -1,8 +1,5 @@ package foundation.e.blisslauncher.features.launcher; -import static android.view.View.GONE; -import static android.view.View.VISIBLE; - import android.Manifest; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; @@ -26,9 +23,11 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.pm.LauncherApps; import android.content.pm.PackageManager; +import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.Point; import android.graphics.Rect; +import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.location.LocationManager; import android.net.Uri; @@ -51,6 +50,7 @@ import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.text.Editable; import android.text.TextWatcher; +import android.util.Log; import android.view.DragEvent; import android.view.Gravity; import android.view.LayoutInflater; @@ -93,6 +93,7 @@ import foundation.e.blisslauncher.core.Alarm; import foundation.e.blisslauncher.core.DeviceProfile; import foundation.e.blisslauncher.core.Preferences; import foundation.e.blisslauncher.core.Utilities; +import foundation.e.blisslauncher.core.blur.BlurWallpaperProvider; import foundation.e.blisslauncher.core.broadcast.ManagedProfileBroadcastReceiver; import foundation.e.blisslauncher.core.broadcast.TimeChangeBroadcastReceiver; import foundation.e.blisslauncher.core.customviews.BlissDragShadowBuilder; @@ -148,8 +149,11 @@ import io.reactivex.schedulers.Schedulers; import me.relex.circleindicator.CircleIndicator; import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper; +import static android.view.View.GONE; +import static android.view.View.VISIBLE; + public class LauncherActivity extends AppCompatActivity implements - AutoCompleteAdapter.OnSuggestionClickListener, OnSwipeDownListener { + AutoCompleteAdapter.OnSuggestionClickListener, OnSwipeDownListener, BlurWallpaperProvider.Listener { public static final int REORDER_TIMEOUT = 350; private final static int EMPTY_LOCATION_DRAG = -999; @@ -1069,8 +1073,6 @@ public class LauncherActivity extends AppCompatActivity implements * updated */ private void createPageChangeListener() { - Integer color1 = Color.TRANSPARENT; - Integer color2 = ContextCompat.getColor(this, R.color.dark_grey_44); mHorizontalPager.addOnScrollListener(new HorizontalPager.OnScrollListener() { boolean isViewScrolling = true; @@ -1079,8 +1081,8 @@ public class LauncherActivity extends AppCompatActivity implements if (scrollX >= 0 && scrollX < mDeviceProfile.availableWidthPx) { float fraction = (float) (mDeviceProfile.availableWidthPx - scrollX) / mDeviceProfile.availableWidthPx; - mHorizontalPager.setBackgroundColor( - (Integer) argbEvaluator.evaluate(fraction, color1, color2)); + int radius = (int) (fraction * 25); + BlurWallpaperProvider.getInstance(LauncherActivity.this).blur(radius); } if (isViewScrolling) { dragDropEnabled = false; @@ -1089,11 +1091,14 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onViewScrollFinished(int page) { - mHorizontalPager.setBackgroundColor(page == 0 ? color2 : color1); + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); isViewScrolling = false; - + if(page != 0) { + backgroundLayer.setBackground(null); + }else { + BlurWallpaperProvider.getInstance(LauncherActivity.this).blur(25); + } if (currentPageNumber != page) { - currentPageNumber = page; // Remove mIndicator and mDock from widgets page, and make them // reappear when user swipes to the first apps page @@ -1125,6 +1130,12 @@ public class LauncherActivity extends AppCompatActivity implements }); } + @Override + public void onBlurSuccess(Bitmap bitmap) { + BitmapDrawable drawable = new BitmapDrawable(bitmap); + runOnUiThread(() -> backgroundLayer.setBackground(drawable)); + } + public void refreshSuggestedApps(ViewGroup viewGroup, boolean forceRefresh) { TextView openUsageAccessSettingsTv = viewGroup.findViewById(R.id.openUsageAccessSettings); GridLayout suggestedAppsGridLayout = viewGroup.findViewById(R.id.suggestedAppGrid); diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index fa3be94719..8d231e2052 100755 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -11,7 +11,7 @@ android:id="@+id/background_layer" android:layout_width="match_parent" android:layout_height="match_parent" - android:alpha="0" + android:alpha="1" android:background="@color/dark_grey_44" /> Date: Tue, 12 Nov 2019 22:45:05 +0530 Subject: [PATCH 02/18] Modify version upgrade script --- bump-version.sh | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/bump-version.sh b/bump-version.sh index 16c0f50a6c..f6d197c70f 100755 --- a/bump-version.sh +++ b/bump-version.sh @@ -144,15 +144,10 @@ do_version_upgrade() { } # It must check for dev or hotfix* branch and bump the version only when current branch is dev or hotfix. -branch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p') -if [[ ${branch} = "dev" ]] || [[ ${branch} = hotfix* ]]; then - git diff-index --quiet HEAD - if [[ $? == 1 ]] ; then - echo -e "${WARNING_FLAG} Working tree must be empty before bumping the version." - exit 1 - fi - do_version_upgrade $1 -else - echo -e "${ERROR_FLAG} Can only be used on dev or hotfix branch." +git diff-index --quiet HEAD +if [[ $? == 1 ]] ; then + echo -e "${WARNING_FLAG} Working tree must be empty before bumping the version." exit 1 fi +do_version_upgrade $1 + -- GitLab From 677f9ea365a7f2eafa81b709bd0cc9fe7f9e7c24 Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Tue, 12 Nov 2019 22:46:37 +0530 Subject: [PATCH 03/18] Remove unnecessary dependencies and upgrade gradle version --- app/build.gradle | 6 +----- build.gradle | 4 +--- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 2c087da3e0..8b551094f7 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,5 +1,4 @@ apply plugin: 'com.android.application' -apply plugin: 'io.fabric' // Manifest version information! def versionMajor = 1 @@ -16,7 +15,7 @@ android { versionName "${versionMajor}.${versionMinor}.${versionPatch}" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - renderscriptTargetApi 18 + renderscriptTargetApi 28 renderscriptSupportModeEnabled true } buildTypes { @@ -82,8 +81,6 @@ dependencies { apiNougatImplementation 'org.cyanogenmod:platform.sdk:6.0' apiOreoImplementation files('libs/lineage-sdk.jar') - debugImplementation 'com.crashlytics.sdk.android:crashlytics:2.9.9' - debugImplementation 'com.google.firebase:firebase-core:16.0.6' debugImplementation 'com.amitshekhar.android:debug-db:1.0.4' implementation 'org.greenrobot:eventbus:3.1.1' @@ -142,5 +139,4 @@ dependencies { androidTestImplementation "com.android.support.test:rules:${rootProject.ext.runnerRulesVersion}" } -apply plugin: 'com.google.gms.google-services' apply plugin: 'com.getkeepsafe.dexcount' diff --git a/build.gradle b/build.gradle index 0a49043526..95551a51c7 100755 --- a/build.gradle +++ b/build.gradle @@ -9,9 +9,7 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:3.4.2' - classpath 'io.fabric.tools:gradle:1.26.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:3.5.2' classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.6' } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5bbf5e3357..fd7090066b 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Jul 26 14:58:52 IST 2019 +#Tue Nov 12 21:21:51 IST 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip -- GitLab From 9ee76b8d88cc6a0d2fc4bcf6de54a5e44e7fda73 Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Tue, 12 Nov 2019 22:48:10 +0530 Subject: [PATCH 04/18] Blur background behind popped-up folder apps and swipe-down to search container with a fallback case --- app/src/main/AndroidManifest.xml | 1 + .../core/blur/BlurWallpaperProvider.java | 110 +++++++++---- .../broadcast/WallpaperChangeReceiver.java | 26 ++++ .../core/customviews/BlissInput.java | 1 - .../features/launcher/LauncherActivity.java | 146 +++++++++++++----- 5 files changed, 218 insertions(+), 66 deletions(-) create mode 100644 app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 57caa8ee7b..3a37a4c7c0 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -38,6 +38,7 @@ android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme" + android:hardwareAccelerated="true" tools:ignore="AllowBackup,GoogleAppIndexingWarning"> ()); private final BlurProcessor blurProcessor; private ExecutorService mDispatcher = Executors.newSingleThreadExecutor(); @@ -44,7 +37,7 @@ public class BlurWallpaperProvider { private DisplayMetrics displayMetrics = new DisplayMetrics(); - private static final float SAMPLE_FACTOR = 4.0f; + private static final float SAMPLE_FACTOR = 8.0f; private static BlurWallpaperProvider sInstance; private Bitmap wallpaper; @@ -72,26 +65,24 @@ public class BlurWallpaperProvider { } private void init() { - updateAsync(); + updateWallpaper(); } private void updateAsync() { - THREAD_POOL_EXECUTOR.execute(updateRunnable); + mDispatcher.submit(updateRunnable); } private void updateWallpaper() { if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - // TODO: Consider calling - // ActivityCompat#requestPermissions - // here to request the missing permissions, and then overriding - // public void onRequestPermissionsResult(int requestCode, String[] permissions, - // int[] grantResults) - // to handle the case where the user grants the permission. See the documentation - // for ActivityCompat#requestPermissions for more details. return; } - wallpaper = Utilities.drawableToBitmap(wallpaperManager.getFastDrawable(), true); - //wallpaper = scaleToScreenSize(wallpaper); + + if (wallpaperManager.getWallpaperInfo() != null) { + // Wallpaper is live wallpaper so can't support blur effect. + return; + } + wallpaper = Utilities.drawableToBitmap(wallpaperManager.getDrawable(), true); + wallpaper = scaleAndCropToScreenSize(wallpaper); } @@ -105,6 +96,52 @@ public class BlurWallpaperProvider { //bitmap.recycle(); } } + + @Override + void onBlurFailed(float factor) { + listener.fallbackToDimBackground(factor); + } + }); + } + + public Bitmap mergeLauncherView(Bitmap launcherView) { + updateWallpaper(); + if (wallpaper == null) { // possibly we don't have access to read the wallpaper or the wallpaper is live wallpaper. + return null; + } + int wallpaperWidth = wallpaper.getWidth(); + int wallpaperHeight = wallpaper.getHeight(); + int overlayWidth = launcherView.getWidth(); + int overlayHeight = launcherView.getHeight(); + + Log.i(BlurWallpaperProvider.class.getName(), "mergeLauncherView: " + wallpaperWidth + "*" + wallpaperHeight); + Log.i(BlurWallpaperProvider.class.getName(), "mergeLauncherView: " + overlayWidth + "*" + overlayHeight); + + float marginLeft = (float) (wallpaperWidth * 0.5 - overlayWidth * 0.5); + float marginTop = (float) (wallpaperHeight * 0.5 - overlayHeight * 0.5); + + Bitmap finalBitmap = Bitmap.createBitmap(wallpaperWidth, wallpaperHeight, wallpaper.getConfig()); + Canvas canvas = new Canvas(finalBitmap); + canvas.drawBitmap(wallpaper, new Matrix(), null); + canvas.drawBitmap(launcherView, marginLeft, marginTop, null); + return finalBitmap; + } + + public void blurWithLauncherView(Bitmap view, int radius) { + cancelPreTask(false); + mFuture = mDispatcher.submit(new BlurTask(view, blurProcessor, radius) { + @Override + void onBlurSuccess(Bitmap bitmap) { + if (bitmap != null && listener != null) { + listener.onBlurSuccess(bitmap); + //bitmap.recycle(); + } + } + + @Override + void onBlurFailed(float factor) { + listener.fallbackToDimBackground(factor); + } }); } @@ -115,7 +152,7 @@ public class BlurWallpaperProvider { } } - private Bitmap scaleToScreenSize(Bitmap wallpaper) { + private Bitmap scaleAndCropToScreenSize(Bitmap wallpaper) { WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); display.getRealMetrics(displayMetrics); @@ -132,17 +169,32 @@ public class BlurWallpaperProvider { return wallpaper; } + Log.i(TAG, "Screen dimension: " + width + "*" + height); + Log.i(TAG, "wallpaper dimension: " + wallpaper.getWidth() + "*" + wallpaper.getHeight()); + int scaledWidth = (int) Math.max(width, (wallpaper.getWidth() * upscaleFactor)); int scaledHeight = (int) Math.max(height, (wallpaper.getHeight() * upscaleFactor)); + Log.i(TAG, "Scaled dimension: " + scaledWidth + "*" + scaledHeight); - return Bitmap.createScaledBitmap(wallpaper, scaledWidth, scaledHeight, false); + wallpaper = Bitmap.createScaledBitmap(wallpaper, scaledWidth, scaledHeight, false); + + int x = 0; + int y = (wallpaper.getHeight() - height) / 2; + if (y < 0 || y + height > wallpaper.getHeight()) { + y = 0; + } + + Log.i(TAG, "X and Y: " + x + "*" + y); + return Bitmap.createBitmap(wallpaper, x, 0, width, height); } public interface Listener { void onBlurSuccess(Bitmap bitmap); + + void fallbackToDimBackground(float dimAlpha); } - public void clear(){ + public void clear() { listener = null; cancelPreTask(true); sInstance = null; @@ -164,9 +216,13 @@ public class BlurWallpaperProvider { if (bitmap != null && !bitmap.isRecycled() && blurProcessor != null) { blurProcessor.radius(radius); onBlurSuccess(blurProcessor.blur(bitmap)); + } else { + onBlurFailed((float) radius / 25); } } abstract void onBlurSuccess(Bitmap bitmap); + + abstract void onBlurFailed(float factor); } } diff --git a/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java b/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java new file mode 100644 index 0000000000..0f8c16ee02 --- /dev/null +++ b/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java @@ -0,0 +1,26 @@ +package foundation.e.blisslauncher.core.broadcast; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; + +import foundation.e.blisslauncher.core.blur.BlurWallpaperProvider; + +public class WallpaperChangeReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + BlurWallpaperProvider.getInstance(context).clear(); + } + + public static WallpaperChangeReceiver register(Context context) { + IntentFilter timeIntentFilter = new IntentFilter(Intent.ACTION_WALLPAPER_CHANGED); + WallpaperChangeReceiver receiver = new WallpaperChangeReceiver(); + context.registerReceiver(receiver, timeIntentFilter); + return receiver; + } + + public static void unregister(Context context, WallpaperChangeReceiver receiver) { + context.unregisterReceiver(receiver); + } +} diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/BlissInput.java b/app/src/main/java/foundation/e/blisslauncher/core/customviews/BlissInput.java index 45b4b3c84b..fe7368df99 100755 --- a/app/src/main/java/foundation/e/blisslauncher/core/customviews/BlissInput.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/BlissInput.java @@ -17,7 +17,6 @@ public class BlissInput extends android.support.v7.widget.AppCompatEditText { super(context, attrs, defStyleAttr); } - @Override public boolean onDragEvent(DragEvent event) { // Without this drag/drop apps won't work on API <24. diff --git a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java index 79e1568dda..d25232742b 100755 --- a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java +++ b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java @@ -24,6 +24,7 @@ import android.content.IntentFilter; import android.content.pm.LauncherApps; import android.content.pm.PackageManager; import android.graphics.Bitmap; +import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Point; import android.graphics.Rect; @@ -40,7 +41,7 @@ import android.os.StrictMode; import android.os.UserManager; import android.provider.Settings; import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; +import android.support.v4.app.ActivityCompat; import android.support.v4.content.LocalBroadcastManager; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; @@ -50,6 +51,7 @@ import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.text.Editable; import android.text.TextWatcher; +import android.util.DisplayMetrics; import android.util.Log; import android.view.DragEvent; import android.view.Gravity; @@ -60,7 +62,6 @@ import android.view.ViewGroup; import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.AnimationUtils; -import android.view.animation.DecelerateInterpolator; import android.view.animation.LinearInterpolator; import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputMethodManager; @@ -96,6 +97,7 @@ import foundation.e.blisslauncher.core.Utilities; import foundation.e.blisslauncher.core.blur.BlurWallpaperProvider; import foundation.e.blisslauncher.core.broadcast.ManagedProfileBroadcastReceiver; import foundation.e.blisslauncher.core.broadcast.TimeChangeBroadcastReceiver; +import foundation.e.blisslauncher.core.broadcast.WallpaperChangeReceiver; import foundation.e.blisslauncher.core.customviews.BlissDragShadowBuilder; import foundation.e.blisslauncher.core.customviews.BlissFrameLayout; import foundation.e.blisslauncher.core.customviews.BlissInput; @@ -153,12 +155,14 @@ import static android.view.View.GONE; import static android.view.View.VISIBLE; public class LauncherActivity extends AppCompatActivity implements - AutoCompleteAdapter.OnSuggestionClickListener, OnSwipeDownListener, BlurWallpaperProvider.Listener { + AutoCompleteAdapter.OnSuggestionClickListener, + OnSwipeDownListener, BlurWallpaperProvider.Listener { public static final int REORDER_TIMEOUT = 350; private final static int EMPTY_LOCATION_DRAG = -999; private static final int REQUEST_PERMISSION_CALL_PHONE = 14; private static final int REQUEST_LOCATION_SOURCE_SETTING = 267; + private static final int STORAGE_PERMISSION_REQUEST_CODE = 586; public static boolean longPressed; private final Alarm mReorderAlarm = new Alarm(); private final Alarm mDockReorderAlarm = new Alarm(); @@ -241,6 +245,9 @@ public class LauncherActivity extends AppCompatActivity implements private AppProvider appProvider; private int moveTo; + private Bitmap mergedView; + private int blurRadius; + private WallpaperChangeReceiver wallpaperChangeReceiver; @SuppressLint("InflateParams") @Override @@ -257,6 +264,7 @@ public class LauncherActivity extends AppCompatActivity implements mLauncherView = LayoutInflater.from(this).inflate( foundation.e.blisslauncher.R.layout.activity_main, null); + setContentView(mLauncherView); setupViews(); @@ -286,6 +294,10 @@ public class LauncherActivity extends AppCompatActivity implements } } + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, STORAGE_PERMISSION_REQUEST_CODE); + } + // Start NotificationService to add count badge to Icons Intent notificationServiceIntent = new Intent(this, NotificationService.class); startService(notificationServiceIntent); @@ -321,7 +333,7 @@ public class LauncherActivity extends AppCompatActivity implements | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); workspace.setOnClickListener(v -> { if (swipeSearchContainer.getVisibility() == VISIBLE) { - hideSwipeSearchContainer(); + hideSwipeSearchContainer(25); } }); } @@ -357,6 +369,7 @@ public class LauncherActivity extends AppCompatActivity implements private void prepareBroadcastReceivers() { timeChangedReceiver = TimeChangeBroadcastReceiver.register(this); managedProfileReceiver = ManagedProfileBroadcastReceiver.register(this); + wallpaperChangeReceiver = WallpaperChangeReceiver.register(this); } protected void attachBaseContext(Context context) { @@ -453,10 +466,12 @@ public class LauncherActivity extends AppCompatActivity implements super.onDestroy(); TimeChangeBroadcastReceiver.unregister(this, timeChangedReceiver); ManagedProfileBroadcastReceiver.unregister(this, managedProfileReceiver); + WallpaperChangeReceiver.unregister(this, wallpaperChangeReceiver); LocalBroadcastManager.getInstance(this).unregisterReceiver(mWeatherReceiver); getCompositeDisposable().dispose(); events.unsubscribe(); BlissLauncher.getApplication(this).getAppProvider().clear(); + BlurWallpaperProvider.getInstance(this).clear(); } public void onAppAddEvent(AppAddEvent appAddEvent) { @@ -1093,10 +1108,8 @@ public class LauncherActivity extends AppCompatActivity implements public void onViewScrollFinished(int page) { BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); isViewScrolling = false; - if(page != 0) { + if (page != 0 && mFolderWindowContainer.getVisibility() != VISIBLE) { backgroundLayer.setBackground(null); - }else { - BlurWallpaperProvider.getInstance(LauncherActivity.this).blur(25); } if (currentPageNumber != page) { currentPageNumber = page; @@ -1136,6 +1149,16 @@ public class LauncherActivity extends AppCompatActivity implements runOnUiThread(() -> backgroundLayer.setBackground(drawable)); } + @Override + public void fallbackToDimBackground(float dimAlpha) { + int color = 0x44000000; + int alpha = Math.round(Color.alpha(color) * dimAlpha); + int red = Color.red(color); + int green = Color.green(color); + int blue = Color.blue(color); + runOnUiThread(() -> backgroundLayer.setBackgroundColor(Color.argb(alpha, red, green, blue))); + } + public void refreshSuggestedApps(ViewGroup viewGroup, boolean forceRefresh) { TextView openUsageAccessSettingsTv = viewGroup.findViewById(R.id.openUsageAccessSettings); GridLayout suggestedAppsGridLayout = viewGroup.findViewById(R.id.suggestedAppGrid); @@ -1436,6 +1459,11 @@ public class LauncherActivity extends AppCompatActivity implements .setAction(WeatherUpdateService.ACTION_FORCE_UPDATE)); } } + } else if(requestCode == STORAGE_PERMISSION_REQUEST_CODE){ + if (grantResults.length > 0 + && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + Log.d(TAG, "Storage permission granted"); + } } } @@ -2729,46 +2757,51 @@ public class LauncherActivity extends AppCompatActivity implements startBounds.bottom += deltaHeight; } - mFolderWindowContainer.setVisibility(View.VISIBLE); - - // Set the pivot point for SCALE_X and SCALE_Y transformations - // to the top-left corner of the zoomed-in view (the default - // is the center of the view). - mFolderWindowContainer.setPivotX(0f); - mFolderWindowContainer.setPivotY(0f); - // Construct and run the parallel animation of the four translation and // scale properties (X, Y, SCALE_X, and SCALE_Y). AnimatorSet set = new AnimatorSet(); - ValueAnimator valueAnimator = ValueAnimator.ofArgb(Color.parseColor("#00000000"), - Color.parseColor("#44000000")); - valueAnimator.addUpdateListener(animation -> backgroundLayer.setBackgroundColor( - (Integer) animation.getAnimatedValue())); - set - .play(ObjectAnimator.ofFloat(mFolderWindowContainer, View.X, - startBounds.left, finalBounds.left)) + ValueAnimator valueAnimator = ValueAnimator.ofInt(0, 25); + mergedView = BlurWallpaperProvider.getInstance(this).mergeLauncherView(getLauncherView()); + valueAnimator.addUpdateListener(animation -> + BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue())); + set.play(ObjectAnimator.ofFloat(mFolderWindowContainer, View.X, + startBounds.left, finalBounds.left)) .with(ObjectAnimator.ofFloat(mFolderWindowContainer, View.Y, startBounds.top, finalBounds.top)) .with(ObjectAnimator.ofFloat(mFolderWindowContainer, View.SCALE_X, startScale, 1f)) .with(ObjectAnimator.ofFloat(mFolderWindowContainer, View.SCALE_Y, startScale, 1f)) - .with(ObjectAnimator.ofFloat(backgroundLayer, View.ALPHA, 0f, 1f)) + .with(valueAnimator) .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 1f, 0f)) .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 1f, 0f)) .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f, 0f)); - set.setDuration(300); - set.setInterpolator(new DecelerateInterpolator()); + set.setInterpolator(new LinearInterpolator()); set.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animation) { + super.onAnimationStart(animation); + mFolderWindowContainer.setVisibility(View.VISIBLE); + + // Set the pivot point for SCALE_X and SCALE_Y transformations + // to the top-left corner of the zoomed-in view (the default + // is the center of the view). + mFolderWindowContainer.setPivotX(0f); + mFolderWindowContainer.setPivotY(0f); + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); + } + @Override public void onAnimationEnd(Animator animation) { currentAnimator = null; + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); } @Override public void onAnimationCancel(Animator animation) { currentAnimator = null; + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); } }); set.start(); @@ -2788,6 +2821,16 @@ public class LauncherActivity extends AppCompatActivity implements } + private Bitmap getLauncherView() { + View view = getWindow().getDecorView().getRootView(); + view.setDrawingCacheEnabled(true); + view.buildDrawingCache(true); + Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache()); + view.setDrawingCacheEnabled(false); + + return bitmap; + } + /** * Hides folder window with an animation */ @@ -2802,10 +2845,9 @@ public class LauncherActivity extends AppCompatActivity implements // Animate the four positioning/sizing properties in parallel, // back to their original values. AnimatorSet set = new AnimatorSet(); - ValueAnimator valueAnimator = ValueAnimator.ofArgb(Color.parseColor("#44000000"), - Color.parseColor("#00000000")); - valueAnimator.addUpdateListener(animation -> mFolderWindowContainer.setBackgroundColor( - (Integer) animation.getAnimatedValue())); + ValueAnimator valueAnimator = ValueAnimator.ofInt(25, 0); + valueAnimator.addUpdateListener(animation -> + BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue())); set.play(ObjectAnimator .ofFloat(mFolderWindowContainer, View.X, startBounds.left)) .with(ObjectAnimator @@ -2817,23 +2859,32 @@ public class LauncherActivity extends AppCompatActivity implements .with(ObjectAnimator .ofFloat(mFolderWindowContainer, View.SCALE_Y, startScaleFinal)) - .with(ObjectAnimator.ofFloat(backgroundLayer, View.ALPHA, 1f, 0f)) .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 0f, 1f)) .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 0f, 1f)) - .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 0f, 1f)); + .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 0f, 1f)) + .with(valueAnimator); set.setDuration(300); - set.setInterpolator(new AccelerateInterpolator()); + set.setInterpolator(new LinearInterpolator()); set.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); mFolderWindowContainer.setVisibility(View.GONE); currentAnimator = null; + mergedView = null; + backgroundLayer.setBackground(null); } @Override public void onAnimationCancel(Animator animation) { + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); mFolderWindowContainer.setVisibility(View.GONE); currentAnimator = null; + mergedView = null; + backgroundLayer.setBackground(null); + mHorizontalPager.setAlpha(1f); + mIndicator.setAlpha(1f); + mDock.setAlpha(1f); } }); set.start(); @@ -2870,7 +2921,7 @@ public class LauncherActivity extends AppCompatActivity implements } if (swipeSearchContainer.getVisibility() == VISIBLE) { - hideSwipeSearchContainer(); + hideSwipeSearchContainer(25); } if (isWobbling) { @@ -2885,8 +2936,11 @@ public class LauncherActivity extends AppCompatActivity implements currentAnimator.cancel(); } AnimatorSet set = new AnimatorSet(); + ValueAnimator blurAnimator = ValueAnimator.ofInt(blurRadius, 25); + blurAnimator.addUpdateListener(animation -> + BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue())); set.play(ObjectAnimator.ofFloat(swipeSearchContainer, View.TRANSLATION_Y, 0)) - .with(ObjectAnimator.ofFloat(backgroundLayer, View.ALPHA, 1f)) + .with(blurAnimator) .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 0f)) .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 0f)) .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 0f)); @@ -2897,16 +2951,20 @@ public class LauncherActivity extends AppCompatActivity implements public void onAnimationCancel(Animator animation) { super.onAnimationCancel(animation); currentAnimator = null; + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); swipeSearchContainer.setVisibility(GONE); mHorizontalPager.setVisibility(VISIBLE); mIndicator.setVisibility(VISIBLE); mDock.setVisibility(VISIBLE); + backgroundLayer.setBackground(null); } @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); currentAnimator = null; + mergedView = null; + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); mHorizontalPager.setVisibility(GONE); mIndicator.setVisibility(GONE); mDock.setVisibility(GONE); @@ -2988,14 +3046,19 @@ public class LauncherActivity extends AppCompatActivity implements }); } - private void hideSwipeSearchContainer() { + private void hideSwipeSearchContainer(int startBlurRadius) { if (currentAnimator != null) { currentAnimator.cancel(); } + if(mergedView == null){ + mergedView = BlurWallpaperProvider.getInstance(this).mergeLauncherView(getLauncherView()); + } AnimatorSet set = new AnimatorSet(); + ValueAnimator blurAnimator = ValueAnimator.ofInt(startBlurRadius, 0); + blurAnimator.addUpdateListener(animation -> + BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue())); set.play(ObjectAnimator.ofFloat(swipeSearchContainer, View.TRANSLATION_Y, -swipeSearchContainer.getHeight())) - .with(ObjectAnimator.ofFloat(backgroundLayer, View.ALPHA, 0f)) .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 1f)) .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 1f)) .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f)); @@ -3014,6 +3077,7 @@ public class LauncherActivity extends AppCompatActivity implements public void onAnimationCancel(Animator animation) { super.onAnimationCancel(animation); currentAnimator = null; + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); mHorizontalPager.setVisibility(GONE); mIndicator.setVisibility(GONE); mDock.setVisibility(GONE); @@ -3023,7 +3087,10 @@ public class LauncherActivity extends AppCompatActivity implements public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); currentAnimator = null; + mergedView = null; + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); swipeSearchContainer.setVisibility(GONE); + backgroundLayer.setBackground(null); if (searchDisposableObserver != null && !searchDisposableObserver.isDisposed()) { searchDisposableObserver.dispose(); @@ -3045,6 +3112,8 @@ public class LauncherActivity extends AppCompatActivity implements BlissLauncher.getApplication(this).getDeviceProfile().availableHeightPx); swipeSearchContainer.setVisibility(VISIBLE); showSwipeSearch = false; + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); + mergedView = BlurWallpaperProvider.getInstance(this).mergeLauncherView(getLauncherView()); } @Override @@ -3056,7 +3125,8 @@ public class LauncherActivity extends AppCompatActivity implements mHorizontalPager.setAlpha(deltaAlpha); mIndicator.setAlpha(deltaAlpha); mDock.setAlpha(deltaAlpha); - backgroundLayer.setAlpha(1 - deltaAlpha); + blurRadius = (int) ((1-deltaAlpha) * 25); + BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, blurRadius); } if (translateBy >= swipeSearchContainer.getHeight() / 2) { @@ -3071,7 +3141,7 @@ public class LauncherActivity extends AppCompatActivity implements if (showSwipeSearch) { showSwipeSearchContainer(); } else { - hideSwipeSearchContainer(); + hideSwipeSearchContainer(blurRadius); } } -- GitLab From be0de64577337b556cc056adb61a377f59e74728 Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Tue, 12 Nov 2019 22:50:38 +0530 Subject: [PATCH 05/18] Bump version to v1.3.0 --- app/build.gradle | 4 ++-- .../e/blisslauncher/features/launcher/LauncherActivity.java | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 8b551094f7..5750747ca6 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,8 +2,8 @@ apply plugin: 'com.android.application' // Manifest version information! def versionMajor = 1 -def versionMinor = 2 -def versionPatch = 4 +def versionMinor = 3 +def versionPatch = 0 android { compileSdkVersion rootProject.ext.compileSdkVersion diff --git a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java index d25232742b..d5446f36a1 100755 --- a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java +++ b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java @@ -24,7 +24,6 @@ import android.content.IntentFilter; import android.content.pm.LauncherApps; import android.content.pm.PackageManager; import android.graphics.Bitmap; -import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Point; import android.graphics.Rect; @@ -51,7 +50,6 @@ import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.text.Editable; import android.text.TextWatcher; -import android.util.DisplayMetrics; import android.util.Log; import android.view.DragEvent; import android.view.Gravity; @@ -59,7 +57,6 @@ import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; -import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.view.animation.LinearInterpolator; -- GitLab From 2c994e859ce90abf283941021f475f35d5b35466 Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Wed, 13 Nov 2019 16:04:42 +0530 Subject: [PATCH 06/18] Fix blur effect not showing for swipe down to search and improve blur behavior --- .../core/blur/BlurWallpaperProvider.java | 16 +++++----- .../features/launcher/LauncherActivity.java | 31 ++++++++++--------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java index e91b854dca..7003b85810 100644 --- a/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java @@ -128,6 +128,7 @@ public class BlurWallpaperProvider { } public void blurWithLauncherView(Bitmap view, int radius) { + Log.d(TAG, "blurWithLauncherView() called with: view = [" + view + "], radius = [" + radius + "]"); cancelPreTask(false); mFuture = mDispatcher.submit(new BlurTask(view, blurProcessor, radius) { @Override @@ -178,14 +179,15 @@ public class BlurWallpaperProvider { wallpaper = Bitmap.createScaledBitmap(wallpaper, scaledWidth, scaledHeight, false); - int x = 0; - int y = (wallpaper.getHeight() - height) / 2; - if (y < 0 || y + height > wallpaper.getHeight()) { - y = 0; + if(wallpaper.getWidth() >= wallpaper.getHeight()){ + return Bitmap.createBitmap(wallpaper, 0, 0, width, height); + } else { + int x = (wallpaper.getWidth() - width) / 2; + if (x < 0 || x + width > wallpaper.getWidth()) { + x = 0; + } + return Bitmap.createBitmap(wallpaper, x, 0, width, height); } - - Log.i(TAG, "X and Y: " + x + "*" + y); - return Bitmap.createBitmap(wallpaper, x, 0, width, height); } public interface Listener { diff --git a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java index 2cb39a990f..395c083b4e 100755 --- a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java +++ b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java @@ -151,9 +151,6 @@ import me.relex.circleindicator.CircleIndicator; import static android.view.View.GONE; import static android.view.View.VISIBLE; -import static android.view.View.GONE; -import static android.view.View.VISIBLE; - public class LauncherActivity extends AppCompatActivity implements AutoCompleteAdapter.OnSuggestionClickListener, OnSwipeDownListener, BlurWallpaperProvider.Listener { @@ -1107,9 +1104,9 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onViewScrollFinished(int page) { - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); isViewScrolling = false; if (page != 0 && mFolderWindowContainer.getVisibility() != VISIBLE) { + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); backgroundLayer.setBackground(null); } if (currentPageNumber != page) { @@ -1146,12 +1143,14 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onBlurSuccess(Bitmap bitmap) { + Log.d(TAG, "onBlurSuccess() called with: bitmap = [" + bitmap + "]"); BitmapDrawable drawable = new BitmapDrawable(bitmap); runOnUiThread(() -> backgroundLayer.setBackground(drawable)); } @Override public void fallbackToDimBackground(float dimAlpha) { + Log.d(TAG, "fallbackToDimBackground() called with: dimAlpha = [" + dimAlpha + "]"); int color = 0x44000000; int alpha = Math.round(Color.alpha(color) * dimAlpha); int red = Color.red(color); @@ -1460,7 +1459,7 @@ public class LauncherActivity extends AppCompatActivity implements .setAction(WeatherUpdateService.ACTION_FORCE_UPDATE)); } } - } else if(requestCode == STORAGE_PERMISSION_REQUEST_CODE){ + } else if (requestCode == STORAGE_PERMISSION_REQUEST_CODE) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { Log.d(TAG, "Storage permission granted"); @@ -2800,13 +2799,11 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onAnimationEnd(Animator animation) { currentAnimator = null; - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); } @Override public void onAnimationCancel(Animator animation) { currentAnimator = null; - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); } }); set.start(); @@ -2873,19 +2870,19 @@ public class LauncherActivity extends AppCompatActivity implements set.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); mFolderWindowContainer.setVisibility(View.GONE); currentAnimator = null; mergedView = null; + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); backgroundLayer.setBackground(null); } @Override public void onAnimationCancel(Animator animation) { - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); mFolderWindowContainer.setVisibility(View.GONE); currentAnimator = null; mergedView = null; + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); backgroundLayer.setBackground(null); mHorizontalPager.setAlpha(1f); mIndicator.setAlpha(1f); @@ -2937,6 +2934,7 @@ public class LauncherActivity extends AppCompatActivity implements } private void showSwipeSearchContainer() { + Log.d(TAG, "showSwipeSearchContainer() called " + blurRadius + " " + (mergedView == null)); if (currentAnimator != null) { currentAnimator.cancel(); } @@ -2955,21 +2953,22 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onAnimationCancel(Animator animation) { super.onAnimationCancel(animation); + Log.d(TAG, "onAnimationCancel() called with: animation = [" + animation + "]"); currentAnimator = null; - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); swipeSearchContainer.setVisibility(GONE); mHorizontalPager.setVisibility(VISIBLE); mIndicator.setVisibility(VISIBLE); mDock.setVisibility(VISIBLE); + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); backgroundLayer.setBackground(null); } @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); + Log.d(TAG, "onAnimationEnd() called with: animation = [" + animation + "]"); currentAnimator = null; mergedView = null; - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); mHorizontalPager.setVisibility(GONE); mIndicator.setVisibility(GONE); mDock.setVisibility(GONE); @@ -3055,7 +3054,7 @@ public class LauncherActivity extends AppCompatActivity implements if (currentAnimator != null) { currentAnimator.cancel(); } - if(mergedView == null){ + if (mergedView == null) { mergedView = BlurWallpaperProvider.getInstance(this).mergeLauncherView(getLauncherView()); } AnimatorSet set = new AnimatorSet(); @@ -3073,6 +3072,7 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onAnimationStart(Animator animation) { super.onAnimationStart(animation); + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); mHorizontalPager.setVisibility(VISIBLE); mIndicator.setVisibility(VISIBLE); mDock.setVisibility(VISIBLE); @@ -3082,7 +3082,7 @@ public class LauncherActivity extends AppCompatActivity implements public void onAnimationCancel(Animator animation) { super.onAnimationCancel(animation); currentAnimator = null; - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); + swipeSearchContainer.setVisibility(VISIBLE); mHorizontalPager.setVisibility(GONE); mIndicator.setVisibility(GONE); mDock.setVisibility(GONE); @@ -3093,8 +3093,8 @@ public class LauncherActivity extends AppCompatActivity implements super.onAnimationEnd(animation); currentAnimator = null; mergedView = null; - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); swipeSearchContainer.setVisibility(GONE); + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); backgroundLayer.setBackground(null); if (searchDisposableObserver != null && !searchDisposableObserver.isDisposed()) { @@ -3130,7 +3130,8 @@ public class LauncherActivity extends AppCompatActivity implements mHorizontalPager.setAlpha(deltaAlpha); mIndicator.setAlpha(deltaAlpha); mDock.setAlpha(deltaAlpha); - blurRadius = (int) ((1-deltaAlpha) * 25); + blurRadius = (int) ((1 - deltaAlpha) * 25); + Log.d(TAG, "onSwipe() called with: position = [" + position + "]"); BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, blurRadius); } -- GitLab From 9f5b67081819a10ea2383ae078ca720b9b6474ea Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Wed, 13 Nov 2019 18:36:29 +0530 Subject: [PATCH 07/18] Add front blur layer for smooth blur effect and Clear blur layer if folder is minimised --- .../core/blur/BlurWallpaperProvider.java | 17 +++--- .../features/launcher/LauncherActivity.java | 59 +++++++++++++++---- app/src/main/res/layout/activity_main.xml | 9 ++- 3 files changed, 62 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java index 7003b85810..e23aede63d 100644 --- a/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java @@ -68,10 +68,6 @@ public class BlurWallpaperProvider { updateWallpaper(); } - private void updateAsync() { - mDispatcher.submit(updateRunnable); - } - private void updateWallpaper() { if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { return; @@ -92,8 +88,7 @@ public class BlurWallpaperProvider { @Override void onBlurSuccess(Bitmap bitmap) { if (bitmap != null && listener != null) { - listener.onBlurSuccess(bitmap); - //bitmap.recycle(); + listener.blurBackgroundLayer(bitmap); } } @@ -134,8 +129,8 @@ public class BlurWallpaperProvider { @Override void onBlurSuccess(Bitmap bitmap) { if (bitmap != null && listener != null) { - listener.onBlurSuccess(bitmap); - //bitmap.recycle(); + Log.d(TAG, "blurBackgroundLayer() called with: bitmap = [" + bitmap + "]"); + listener.blurFrontLayer(bitmap); } } @@ -148,6 +143,7 @@ public class BlurWallpaperProvider { public void cancelPreTask(boolean interrupt) { if (mFuture != null && !mFuture.isCancelled() && !mFuture.isDone()) { + Log.d(TAG, "cancelPreTask() called with: interrupt = [" + interrupt + "]"); mFuture.cancel(interrupt); mFuture = null; } @@ -191,12 +187,15 @@ public class BlurWallpaperProvider { } public interface Listener { - void onBlurSuccess(Bitmap bitmap); + void blurBackgroundLayer(Bitmap bitmap); + + void blurFrontLayer(Bitmap bitmap); void fallbackToDimBackground(float dimAlpha); } public void clear() { + Log.d(TAG, "clear() called"); listener = null; cancelPreTask(true); sInstance = null; diff --git a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java index 395c083b4e..5650fb6d70 100755 --- a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java +++ b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java @@ -204,7 +204,8 @@ public class LauncherActivity extends AppCompatActivity implements private List mUsageStats; private FrameLayout swipeSearchContainer; private RelativeLayout workspace; - private View backgroundLayer; + private View backgroundLayer; // Blur layer for horizontal pager. + private View frontLayer; // Blur layer for folders and search container. private BroadcastReceiver mWeatherReceiver = new BroadcastReceiver() { @Override @@ -306,6 +307,7 @@ public class LauncherActivity extends AppCompatActivity implements workspace = mLauncherView.findViewById(R.id.workspace); mHorizontalPager = mLauncherView.findViewById(R.id.pages_container); backgroundLayer = mLauncherView.findViewById(R.id.background_layer); + frontLayer = mLauncherView.findViewById(R.id.blur_layer); statusBarHeight = 0; int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { @@ -1104,11 +1106,15 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onViewScrollFinished(int page) { + Log.d(TAG, "onViewScrollFinished() called with: page = [" + page + "]"); isViewScrolling = false; - if (page != 0 && mFolderWindowContainer.getVisibility() != VISIBLE) { - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); + if (page != 0) { backgroundLayer.setBackground(null); } + + if (mFolderWindowContainer.getVisibility() != VISIBLE) { + frontLayer.setBackground(null); + } if (currentPageNumber != page) { currentPageNumber = page; // Remove mIndicator and mDock from widgets page, and make them @@ -1142,12 +1148,19 @@ public class LauncherActivity extends AppCompatActivity implements } @Override - public void onBlurSuccess(Bitmap bitmap) { - Log.d(TAG, "onBlurSuccess() called with: bitmap = [" + bitmap + "]"); + public void blurBackgroundLayer(Bitmap bitmap) { + Log.d(TAG, "blurBackgroundLayer() called with: bitmap = [" + bitmap + "]"); BitmapDrawable drawable = new BitmapDrawable(bitmap); runOnUiThread(() -> backgroundLayer.setBackground(drawable)); } + @Override + public void blurFrontLayer(Bitmap bitmap) { + Log.d(TAG, "blurFrontLayer() called with: bitmap = [" + bitmap + "]"); + BitmapDrawable drawable = new BitmapDrawable(bitmap); + runOnUiThread(() -> frontLayer.setBackground(drawable)); + } + @Override public void fallbackToDimBackground(float dimAlpha) { Log.d(TAG, "fallbackToDimBackground() called with: dimAlpha = [" + dimAlpha + "]"); @@ -1159,6 +1172,14 @@ public class LauncherActivity extends AppCompatActivity implements runOnUiThread(() -> backgroundLayer.setBackgroundColor(Color.argb(alpha, red, green, blue))); } + private void removeBlur(View view) { + new Handler(Looper.getMainLooper()) + .post(() -> { + Log.d(TAG, "removeBlur() called"); + view.setBackground(null); + }); + } + public void refreshSuggestedApps(ViewGroup viewGroup, boolean forceRefresh) { TextView openUsageAccessSettingsTv = viewGroup.findViewById(R.id.openUsageAccessSettings); GridLayout suggestedAppsGridLayout = viewGroup.findViewById(R.id.suggestedAppGrid); @@ -2761,6 +2782,8 @@ public class LauncherActivity extends AppCompatActivity implements startBounds.bottom += deltaHeight; } + Log.d("ShowFolder", "displayFolder() called with: app = [" + app + "], v = [" + v + "]"); + // Construct and run the parallel animation of the four translation and // scale properties (X, Y, SCALE_X, and SCALE_Y). AnimatorSet set = new AnimatorSet(); @@ -2786,6 +2809,7 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onAnimationStart(Animator animation) { super.onAnimationStart(animation); + Log.d("ShowFolder", "onAnimationStart() called with: animation = [" + animation + "]"); mFolderWindowContainer.setVisibility(View.VISIBLE); // Set the pivot point for SCALE_X and SCALE_Y transformations @@ -2798,12 +2822,21 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onAnimationEnd(Animator animation) { + Log.d("ShowFolder", "onAnimationEnd() called with: animation = [" + animation + "]"); currentAnimator = null; } @Override public void onAnimationCancel(Animator animation) { + Log.d("ShowFolder", "onAnimationCancel() called with: animation = [" + animation + "]"); currentAnimator = null; + mergedView = null; + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); + removeBlur(frontLayer); + mFolderWindowContainer.setVisibility(GONE); + mHorizontalPager.setAlpha(1f); + mIndicator.setAlpha(1f); + mDock.setAlpha(1f); } }); set.start(); @@ -2844,6 +2877,8 @@ public class LauncherActivity extends AppCompatActivity implements currentAnimator.cancel(); } + Log.d("HideFolder", "hideFolderWindowContainer() called"); + // Animate the four positioning/sizing properties in parallel, // back to their original values. AnimatorSet set = new AnimatorSet(); @@ -2870,20 +2905,22 @@ public class LauncherActivity extends AppCompatActivity implements set.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { + Log.d("HideFolder", "onAnimationEnd() called with: animation = [" + animation + "]"); mFolderWindowContainer.setVisibility(View.GONE); currentAnimator = null; mergedView = null; BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); - backgroundLayer.setBackground(null); + removeBlur(frontLayer); } @Override public void onAnimationCancel(Animator animation) { + Log.d("HideFolder", "onAnimationCancel() called with: animation = [" + animation + "]"); mFolderWindowContainer.setVisibility(View.GONE); currentAnimator = null; mergedView = null; BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); - backgroundLayer.setBackground(null); + removeBlur(frontLayer); mHorizontalPager.setAlpha(1f); mIndicator.setAlpha(1f); mDock.setAlpha(1f); @@ -2955,12 +2992,12 @@ public class LauncherActivity extends AppCompatActivity implements super.onAnimationCancel(animation); Log.d(TAG, "onAnimationCancel() called with: animation = [" + animation + "]"); currentAnimator = null; + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); + removeBlur(frontLayer); swipeSearchContainer.setVisibility(GONE); mHorizontalPager.setVisibility(VISIBLE); mIndicator.setVisibility(VISIBLE); mDock.setVisibility(VISIBLE); - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); - backgroundLayer.setBackground(null); } @Override @@ -3093,9 +3130,9 @@ public class LauncherActivity extends AppCompatActivity implements super.onAnimationEnd(animation); currentAnimator = null; mergedView = null; - swipeSearchContainer.setVisibility(GONE); BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); - backgroundLayer.setBackground(null); + removeBlur(frontLayer); + swipeSearchContainer.setVisibility(GONE); if (searchDisposableObserver != null && !searchDisposableObserver.isDisposed()) { searchDisposableObserver.dispose(); diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 8d231e2052..84f1648737 100755 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -10,9 +10,7 @@ + android:layout_height="match_parent" /> + + Date: Wed, 13 Nov 2019 21:16:23 +0530 Subject: [PATCH 08/18] Fix wallpaper offset bugs and slow down the speed of blur effect --- .../core/blur/BlurWallpaperProvider.java | 16 ++++---- .../broadcast/WallpaperChangeReceiver.java | 37 +++++++++++++++---- .../features/launcher/LauncherActivity.java | 37 ++++++++++++++----- 3 files changed, 65 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java index e23aede63d..90ec08f0ee 100644 --- a/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java @@ -175,15 +175,13 @@ public class BlurWallpaperProvider { wallpaper = Bitmap.createScaledBitmap(wallpaper, scaledWidth, scaledHeight, false); - if(wallpaper.getWidth() >= wallpaper.getHeight()){ - return Bitmap.createBitmap(wallpaper, 0, 0, width, height); - } else { - int x = (wallpaper.getWidth() - width) / 2; - if (x < 0 || x + width > wallpaper.getWidth()) { - x = 0; - } - return Bitmap.createBitmap(wallpaper, x, 0, width, height); - } + + int y; + if (wallpaper.getHeight() > height) { + y = (wallpaper.getHeight() - height) / 2; + } else y = 0; + + return Bitmap.createBitmap(wallpaper, 0, y, width, height); } public interface Listener { diff --git a/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java b/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java index 0f8c16ee02..02a54ab404 100644 --- a/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java @@ -1,26 +1,49 @@ package foundation.e.blisslauncher.core.broadcast; +import android.app.WallpaperManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.os.IBinder; +import android.view.View; import foundation.e.blisslauncher.core.blur.BlurWallpaperProvider; +import static android.content.Context.WALLPAPER_SERVICE; + public class WallpaperChangeReceiver extends BroadcastReceiver { + private final Context mContext; + private IBinder mWindowToken; + private boolean mRegistered; + private View mWorkspace; + + public WallpaperChangeReceiver(View workspace){ + this.mWorkspace = workspace; + this.mContext = mWorkspace.getContext(); + } + @Override public void onReceive(Context context, Intent intent) { BlurWallpaperProvider.getInstance(context).clear(); + updateOffset(); } - public static WallpaperChangeReceiver register(Context context) { - IntentFilter timeIntentFilter = new IntentFilter(Intent.ACTION_WALLPAPER_CHANGED); - WallpaperChangeReceiver receiver = new WallpaperChangeReceiver(); - context.registerReceiver(receiver, timeIntentFilter); - return receiver; + public void setWindowToken(IBinder token) { + mWindowToken = token; + if (mWindowToken == null && mRegistered) { + mWorkspace.getContext().unregisterReceiver(this); + mRegistered = false; + } else if (mWindowToken != null && !mRegistered) { + mWorkspace.getContext() + .registerReceiver(this, new IntentFilter(Intent.ACTION_WALLPAPER_CHANGED)); + onReceive(mWorkspace.getContext(), null); + mRegistered = true; + } } - public static void unregister(Context context, WallpaperChangeReceiver receiver) { - context.unregisterReceiver(receiver); + private void updateOffset() { + WallpaperManager wm = (WallpaperManager) mContext.getSystemService(WALLPAPER_SERVICE); + wm.setWallpaperOffsets(mWorkspace.getWindowToken(), 0f, 0.5f); } } diff --git a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java index 5650fb6d70..eadcc0b825 100755 --- a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java +++ b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java @@ -305,6 +305,18 @@ public class LauncherActivity extends AppCompatActivity implements private void setupViews() { workspace = mLauncherView.findViewById(R.id.workspace); + wallpaperChangeReceiver = new WallpaperChangeReceiver(workspace); + workspace.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() { + @Override + public void onViewAttachedToWindow(View v) { + wallpaperChangeReceiver.setWindowToken(v.getWindowToken()); + } + + @Override + public void onViewDetachedFromWindow(View v) { + wallpaperChangeReceiver.setWindowToken(null); + } + }); mHorizontalPager = mLauncherView.findViewById(R.id.pages_container); backgroundLayer = mLauncherView.findViewById(R.id.background_layer); frontLayer = mLauncherView.findViewById(R.id.blur_layer); @@ -369,7 +381,6 @@ public class LauncherActivity extends AppCompatActivity implements private void prepareBroadcastReceivers() { timeChangedReceiver = TimeChangeBroadcastReceiver.register(this); managedProfileReceiver = ManagedProfileBroadcastReceiver.register(this); - wallpaperChangeReceiver = WallpaperChangeReceiver.register(this); } protected void attachBaseContext(Context context) { @@ -466,7 +477,6 @@ public class LauncherActivity extends AppCompatActivity implements super.onDestroy(); TimeChangeBroadcastReceiver.unregister(this, timeChangedReceiver); ManagedProfileBroadcastReceiver.unregister(this, managedProfileReceiver); - WallpaperChangeReceiver.unregister(this, wallpaperChangeReceiver); LocalBroadcastManager.getInstance(this).unregisterReceiver(mWeatherReceiver); getCompositeDisposable().dispose(); events.unsubscribe(); @@ -1109,10 +1119,12 @@ public class LauncherActivity extends AppCompatActivity implements Log.d(TAG, "onViewScrollFinished() called with: page = [" + page + "]"); isViewScrolling = false; if (page != 0) { + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); backgroundLayer.setBackground(null); } if (mFolderWindowContainer.getVisibility() != VISIBLE) { + BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); frontLayer.setBackground(null); } if (currentPageNumber != page) { @@ -1151,14 +1163,21 @@ public class LauncherActivity extends AppCompatActivity implements public void blurBackgroundLayer(Bitmap bitmap) { Log.d(TAG, "blurBackgroundLayer() called with: bitmap = [" + bitmap + "]"); BitmapDrawable drawable = new BitmapDrawable(bitmap); - runOnUiThread(() -> backgroundLayer.setBackground(drawable)); - } + new Handler(Looper.getMainLooper()) + .post(() -> { + Log.d(TAG, "removeBlur() called"); + backgroundLayer.setBackground(drawable); + }); } @Override public void blurFrontLayer(Bitmap bitmap) { Log.d(TAG, "blurFrontLayer() called with: bitmap = [" + bitmap + "]"); BitmapDrawable drawable = new BitmapDrawable(bitmap); - runOnUiThread(() -> frontLayer.setBackground(drawable)); + new Handler(Looper.getMainLooper()) + .post(() -> { + Log.d(TAG, "removeBlur() called"); + frontLayer.setBackground(drawable); + }); } @Override @@ -2803,7 +2822,7 @@ public class LauncherActivity extends AppCompatActivity implements .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 1f, 0f)) .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 1f, 0f)) .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f, 0f)); - set.setDuration(300); + set.setDuration(400); set.setInterpolator(new LinearInterpolator()); set.addListener(new AnimatorListenerAdapter() { @Override @@ -2900,7 +2919,7 @@ public class LauncherActivity extends AppCompatActivity implements .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 0f, 1f)) .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 0f, 1f)) .with(valueAnimator); - set.setDuration(300); + set.setDuration(400); set.setInterpolator(new LinearInterpolator()); set.addListener(new AnimatorListenerAdapter() { @Override @@ -2984,7 +3003,7 @@ public class LauncherActivity extends AppCompatActivity implements .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 0f)) .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 0f)) .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 0f)); - set.setDuration(200); + set.setDuration(500); set.setInterpolator(new LinearInterpolator()); set.addListener(new AnimatorListenerAdapter() { @Override @@ -3103,7 +3122,7 @@ public class LauncherActivity extends AppCompatActivity implements .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 1f)) .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 1f)) .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f)); - set.setDuration(200); + set.setDuration(500); set.setInterpolator(new LinearInterpolator()); set.addListener(new AnimatorListenerAdapter() { @Override -- GitLab From 2c79f4686d75eb672920eb3b71077a255ec3a2cd Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Thu, 14 Nov 2019 21:10:28 +0530 Subject: [PATCH 09/18] Fix blur ui issues - 1. Consider navigation bar while doing blur. 2. Properly set offset for the wallpaper to prevent shifted blurred background. --- app/src/main/AndroidManifest.xml | 1 + .../e/blisslauncher/core/DeviceProfile.java | 43 +++++++++++++--- .../core/blur/BlurWallpaperProvider.java | 33 ++++++------ .../broadcast/WallpaperChangeReceiver.java | 3 +- .../features/launcher/LauncherActivity.java | 50 ++++++------------- 5 files changed, 73 insertions(+), 57 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3a37a4c7c0..2c8f21854e 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -32,6 +32,7 @@ + 0) { + statusBarHeight = res.getDimensionPixelSize(resourceId); + } + ComponentName cn = new ComponentName(context.getPackageName(), this.getClass().getName()); @@ -248,8 +253,6 @@ public class DeviceProfile { dateTextBottomPadding = (dateTextviewHeight - (int) (0.86 * Utilities.calculateTextHeight( (float) dateTextSize / 2))) / 2; - Log.i(TAG, "datepadding: " + dateTextTopPadding + "*" + dateTextBottomPadding); - cellHeightWithoutPaddingPx = iconSizePx + Utilities.pxFromDp(4, dm) + Utilities.calculateTextHeight(iconTextSizePx); @@ -304,7 +307,7 @@ public class DeviceProfile { return pageIndicatorSizePx + pageIndicatorBottomPaddingPx + pageIndicatorTopPaddingPx; } - public int getMaxWidgetWidth(){ + public int getMaxWidgetWidth() { return maxWidgetWidth; } @@ -351,6 +354,34 @@ public class DeviceProfile { return resizedPath; } + public boolean hasSoftNavigationBar(Context context) { + WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); + Display display = wm.getDefaultDisplay(); + DisplayMetrics dm = new DisplayMetrics(); + display.getMetrics(dm); + + Point smallestSize = new Point(); + Point largestSize = new Point(); + display.getCurrentSizeRange(smallestSize, largestSize); + + int availableHeight = largestSize.y; + + Point realSize = new Point(); + display.getRealSize(realSize); + int realHeight = realSize.y; + context = getContext(context, Configuration.ORIENTATION_PORTRAIT); + Resources res = context.getResources(); + + // status bar height + statusBarHeight = 0; + int resourceId = res.getIdentifier("status_bar_height", "dimen", "android"); + if (resourceId > 0) { + statusBarHeight = res.getDimensionPixelSize(resourceId); + } + + return (realHeight - availableHeight - statusBarHeight) > 0; + } + private int getLauncherIconDensity(int requiredSize) { // Densities typically defined by an app. int[] densityBuckets = new int[]{ diff --git a/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java index 90ec08f0ee..2b748a68c1 100644 --- a/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java @@ -9,7 +9,6 @@ import android.graphics.Canvas; import android.graphics.Matrix; import android.support.v4.app.ActivityCompat; import android.util.DisplayMetrics; -import android.util.Log; import android.view.Display; import android.view.WindowManager; @@ -20,12 +19,11 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; +import foundation.e.blisslauncher.BlissLauncher; import foundation.e.blisslauncher.core.Utilities; public class BlurWallpaperProvider { - private static final String TAG = "BlurWallpaperProvider"; - private final Context context; private final WallpaperManager wallpaperManager; @@ -49,7 +47,7 @@ public class BlurWallpaperProvider { this.wallpaperManager = WallpaperManager.getInstance(context); blurProcessor = HokoBlur.with(context).sampleFactor(SAMPLE_FACTOR) .scheme(HokoBlur.SCHEME_OPENGL) - .mode(HokoBlur.MODE_GAUSSIAN) + .mode(HokoBlur.MODE_STACK) .forceCopy(false) .needUpscale(true) .processor(); @@ -109,8 +107,11 @@ public class BlurWallpaperProvider { int overlayWidth = launcherView.getWidth(); int overlayHeight = launcherView.getHeight(); - Log.i(BlurWallpaperProvider.class.getName(), "mergeLauncherView: " + wallpaperWidth + "*" + wallpaperHeight); - Log.i(BlurWallpaperProvider.class.getName(), "mergeLauncherView: " + overlayWidth + "*" + overlayHeight); + // Hack for removing soft navigation bar + if(overlayHeight > wallpaperHeight) { + overlayHeight = wallpaperHeight; + launcherView = Bitmap.createBitmap(launcherView, 0, 0, overlayWidth, overlayHeight); + } float marginLeft = (float) (wallpaperWidth * 0.5 - overlayWidth * 0.5); float marginTop = (float) (wallpaperHeight * 0.5 - overlayHeight * 0.5); @@ -123,13 +124,11 @@ public class BlurWallpaperProvider { } public void blurWithLauncherView(Bitmap view, int radius) { - Log.d(TAG, "blurWithLauncherView() called with: view = [" + view + "], radius = [" + radius + "]"); cancelPreTask(false); mFuture = mDispatcher.submit(new BlurTask(view, blurProcessor, radius) { @Override void onBlurSuccess(Bitmap bitmap) { if (bitmap != null && listener != null) { - Log.d(TAG, "blurBackgroundLayer() called with: bitmap = [" + bitmap + "]"); listener.blurFrontLayer(bitmap); } } @@ -143,7 +142,6 @@ public class BlurWallpaperProvider { public void cancelPreTask(boolean interrupt) { if (mFuture != null && !mFuture.isCancelled() && !mFuture.isDone()) { - Log.d(TAG, "cancelPreTask() called with: interrupt = [" + interrupt + "]"); mFuture.cancel(interrupt); mFuture = null; } @@ -166,22 +164,26 @@ public class BlurWallpaperProvider { return wallpaper; } - Log.i(TAG, "Screen dimension: " + width + "*" + height); - Log.i(TAG, "wallpaper dimension: " + wallpaper.getWidth() + "*" + wallpaper.getHeight()); - int scaledWidth = (int) Math.max(width, (wallpaper.getWidth() * upscaleFactor)); int scaledHeight = (int) Math.max(height, (wallpaper.getHeight() * upscaleFactor)); - Log.i(TAG, "Scaled dimension: " + scaledWidth + "*" + scaledHeight); wallpaper = Bitmap.createScaledBitmap(wallpaper, scaledWidth, scaledHeight, false); + int navigationBarHeight = 0; + if (BlissLauncher.getApplication(context).getDeviceProfile().hasSoftNavigationBar(context)) { + + int resourceId = context.getResources().getIdentifier("navigation_bar_height", "dimen", "android"); + if (resourceId > 0) { + navigationBarHeight = context.getResources().getDimensionPixelSize(resourceId); + } + } int y; if (wallpaper.getHeight() > height) { y = (wallpaper.getHeight() - height) / 2; } else y = 0; - return Bitmap.createBitmap(wallpaper, 0, y, width, height); + return Bitmap.createBitmap(wallpaper, 0, y, width, height - navigationBarHeight); } public interface Listener { @@ -193,7 +195,6 @@ public class BlurWallpaperProvider { } public void clear() { - Log.d(TAG, "clear() called"); listener = null; cancelPreTask(true); sInstance = null; @@ -216,7 +217,7 @@ public class BlurWallpaperProvider { blurProcessor.radius(radius); onBlurSuccess(blurProcessor.blur(bitmap)); } else { - onBlurFailed((float) radius / 25); + onBlurFailed((float) radius / 15); } } diff --git a/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java b/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java index 02a54ab404..840c18cfd9 100644 --- a/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java @@ -44,6 +44,7 @@ public class WallpaperChangeReceiver extends BroadcastReceiver { private void updateOffset() { WallpaperManager wm = (WallpaperManager) mContext.getSystemService(WALLPAPER_SERVICE); - wm.setWallpaperOffsets(mWorkspace.getWindowToken(), 0f, 0.5f); + wm.setWallpaperOffsets(mWindowToken, 0f, 0.5f); + wm.setWallpaperOffsetSteps(0.0f, 0.0f); } } diff --git a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java index eadcc0b825..5e8198a0a3 100755 --- a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java +++ b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java @@ -12,6 +12,7 @@ import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; +import android.app.WallpaperManager; import android.app.usage.UsageStats; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProviderInfo; @@ -266,6 +267,9 @@ public class LauncherActivity extends AppCompatActivity implements setContentView(mLauncherView); setupViews(); + WallpaperManager wm = (WallpaperManager) getSystemService(WALLPAPER_SERVICE); + wm.suggestDesiredDimensions(mDeviceProfile.widthPx, mDeviceProfile.heightPx); + mProgressBar.setVisibility(View.VISIBLE); if (Preferences.shouldAskForNotificationAccess(this)) { @@ -345,7 +349,7 @@ public class LauncherActivity extends AppCompatActivity implements | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); workspace.setOnClickListener(v -> { if (swipeSearchContainer.getVisibility() == VISIBLE) { - hideSwipeSearchContainer(25); + hideSwipeSearchContainer(18); } }); } @@ -1106,7 +1110,7 @@ public class LauncherActivity extends AppCompatActivity implements if (scrollX >= 0 && scrollX < mDeviceProfile.availableWidthPx) { float fraction = (float) (mDeviceProfile.availableWidthPx - scrollX) / mDeviceProfile.availableWidthPx; - int radius = (int) (fraction * 25); + int radius = (int) (fraction * 18); BlurWallpaperProvider.getInstance(LauncherActivity.this).blur(radius); } if (isViewScrolling) { @@ -1116,7 +1120,6 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onViewScrollFinished(int page) { - Log.d(TAG, "onViewScrollFinished() called with: page = [" + page + "]"); isViewScrolling = false; if (page != 0) { BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); @@ -1161,28 +1164,23 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void blurBackgroundLayer(Bitmap bitmap) { - Log.d(TAG, "blurBackgroundLayer() called with: bitmap = [" + bitmap + "]"); BitmapDrawable drawable = new BitmapDrawable(bitmap); new Handler(Looper.getMainLooper()) .post(() -> { - Log.d(TAG, "removeBlur() called"); backgroundLayer.setBackground(drawable); }); } @Override public void blurFrontLayer(Bitmap bitmap) { - Log.d(TAG, "blurFrontLayer() called with: bitmap = [" + bitmap + "]"); BitmapDrawable drawable = new BitmapDrawable(bitmap); new Handler(Looper.getMainLooper()) .post(() -> { - Log.d(TAG, "removeBlur() called"); frontLayer.setBackground(drawable); }); } @Override public void fallbackToDimBackground(float dimAlpha) { - Log.d(TAG, "fallbackToDimBackground() called with: dimAlpha = [" + dimAlpha + "]"); int color = 0x44000000; int alpha = Math.round(Color.alpha(color) * dimAlpha); int red = Color.red(color); @@ -1193,10 +1191,7 @@ public class LauncherActivity extends AppCompatActivity implements private void removeBlur(View view) { new Handler(Looper.getMainLooper()) - .post(() -> { - Log.d(TAG, "removeBlur() called"); - view.setBackground(null); - }); + .post(() -> view.setBackground(null)); } public void refreshSuggestedApps(ViewGroup viewGroup, boolean forceRefresh) { @@ -2801,12 +2796,10 @@ public class LauncherActivity extends AppCompatActivity implements startBounds.bottom += deltaHeight; } - Log.d("ShowFolder", "displayFolder() called with: app = [" + app + "], v = [" + v + "]"); - // Construct and run the parallel animation of the four translation and // scale properties (X, Y, SCALE_X, and SCALE_Y). AnimatorSet set = new AnimatorSet(); - ValueAnimator valueAnimator = ValueAnimator.ofInt(0, 25); + ValueAnimator valueAnimator = ValueAnimator.ofInt(0, 18); mergedView = BlurWallpaperProvider.getInstance(this).mergeLauncherView(getLauncherView()); valueAnimator.addUpdateListener(animation -> BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue())); @@ -2822,13 +2815,12 @@ public class LauncherActivity extends AppCompatActivity implements .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 1f, 0f)) .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 1f, 0f)) .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f, 0f)); - set.setDuration(400); + set.setDuration(360); set.setInterpolator(new LinearInterpolator()); set.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationStart(Animator animation) { super.onAnimationStart(animation); - Log.d("ShowFolder", "onAnimationStart() called with: animation = [" + animation + "]"); mFolderWindowContainer.setVisibility(View.VISIBLE); // Set the pivot point for SCALE_X and SCALE_Y transformations @@ -2841,13 +2833,12 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onAnimationEnd(Animator animation) { - Log.d("ShowFolder", "onAnimationEnd() called with: animation = [" + animation + "]"); currentAnimator = null; + mergedView = null; } @Override public void onAnimationCancel(Animator animation) { - Log.d("ShowFolder", "onAnimationCancel() called with: animation = [" + animation + "]"); currentAnimator = null; mergedView = null; BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); @@ -2881,7 +2872,6 @@ public class LauncherActivity extends AppCompatActivity implements view.buildDrawingCache(true); Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache()); view.setDrawingCacheEnabled(false); - return bitmap; } @@ -2896,12 +2886,10 @@ public class LauncherActivity extends AppCompatActivity implements currentAnimator.cancel(); } - Log.d("HideFolder", "hideFolderWindowContainer() called"); - // Animate the four positioning/sizing properties in parallel, // back to their original values. AnimatorSet set = new AnimatorSet(); - ValueAnimator valueAnimator = ValueAnimator.ofInt(25, 0); + ValueAnimator valueAnimator = ValueAnimator.ofInt(18, 0); valueAnimator.addUpdateListener(animation -> BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue())); set.play(ObjectAnimator @@ -2919,12 +2907,11 @@ public class LauncherActivity extends AppCompatActivity implements .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 0f, 1f)) .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 0f, 1f)) .with(valueAnimator); - set.setDuration(400); + set.setDuration(360); set.setInterpolator(new LinearInterpolator()); set.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { - Log.d("HideFolder", "onAnimationEnd() called with: animation = [" + animation + "]"); mFolderWindowContainer.setVisibility(View.GONE); currentAnimator = null; mergedView = null; @@ -2934,7 +2921,6 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onAnimationCancel(Animator animation) { - Log.d("HideFolder", "onAnimationCancel() called with: animation = [" + animation + "]"); mFolderWindowContainer.setVisibility(View.GONE); currentAnimator = null; mergedView = null; @@ -2979,7 +2965,7 @@ public class LauncherActivity extends AppCompatActivity implements } if (swipeSearchContainer.getVisibility() == VISIBLE) { - hideSwipeSearchContainer(25); + hideSwipeSearchContainer(18); } if (isWobbling) { @@ -2990,12 +2976,11 @@ public class LauncherActivity extends AppCompatActivity implements } private void showSwipeSearchContainer() { - Log.d(TAG, "showSwipeSearchContainer() called " + blurRadius + " " + (mergedView == null)); if (currentAnimator != null) { currentAnimator.cancel(); } AnimatorSet set = new AnimatorSet(); - ValueAnimator blurAnimator = ValueAnimator.ofInt(blurRadius, 25); + ValueAnimator blurAnimator = ValueAnimator.ofInt(blurRadius, 18); blurAnimator.addUpdateListener(animation -> BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue())); set.play(ObjectAnimator.ofFloat(swipeSearchContainer, View.TRANSLATION_Y, 0)) @@ -3009,7 +2994,6 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onAnimationCancel(Animator animation) { super.onAnimationCancel(animation); - Log.d(TAG, "onAnimationCancel() called with: animation = [" + animation + "]"); currentAnimator = null; BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); removeBlur(frontLayer); @@ -3022,7 +3006,6 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); - Log.d(TAG, "onAnimationEnd() called with: animation = [" + animation + "]"); currentAnimator = null; mergedView = null; mHorizontalPager.setVisibility(GONE); @@ -3128,7 +3111,7 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onAnimationStart(Animator animation) { super.onAnimationStart(animation); - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); + //BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); mHorizontalPager.setVisibility(VISIBLE); mIndicator.setVisibility(VISIBLE); mDock.setVisibility(VISIBLE); @@ -3186,8 +3169,7 @@ public class LauncherActivity extends AppCompatActivity implements mHorizontalPager.setAlpha(deltaAlpha); mIndicator.setAlpha(deltaAlpha); mDock.setAlpha(deltaAlpha); - blurRadius = (int) ((1 - deltaAlpha) * 25); - Log.d(TAG, "onSwipe() called with: position = [" + position + "]"); + blurRadius = (int) ((1 - deltaAlpha) * 18); BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, blurRadius); } -- GitLab From e505500830c37991553d8364c474d51b879cdf26 Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Tue, 26 Nov 2019 16:49:40 +0530 Subject: [PATCH 10/18] Add hoko-blur library to support renderscript blurring --- .../.cxx/cmake/debug/arm64-v8a/.ninja_deps | Bin 0 -> 9264 bytes .../.cxx/cmake/debug/arm64-v8a/.ninja_log | 6 + .../.cxx/cmake/debug/arm64-v8a/CMakeCache.txt | 331 ++++++++++++ .../CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake | 67 +++ .../3.6.0-rc2/CMakeCXXCompiler.cmake | 68 +++ .../3.6.0-rc2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 10336 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 10352 bytes .../CMakeFiles/3.6.0-rc2/CMakeSystem.cmake | 15 + .../arm64-v8a/CMakeFiles/CMakeOutput.log | 447 ++++++++++++++++ .../CMakeFiles/TargetDirectories.txt | 3 + .../arm64-v8a/CMakeFiles/cmake.check_cache | 1 + .../arm64-v8a/CMakeFiles/feature_tests.bin | Bin 0 -> 14248 bytes .../arm64-v8a/CMakeFiles/feature_tests.c | 34 ++ .../arm64-v8a/CMakeFiles/feature_tests.cxx | 405 +++++++++++++++ .../CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o | Bin 0 -> 65456 bytes .../hoko_blur.dir/BoxBlurFilter.cpp.o | Bin 0 -> 71448 bytes .../hoko_blur.dir/GaussianBlurFilter.cpp.o | Bin 0 -> 73152 bytes .../hoko_blur.dir/StackBlurFilter.cpp.o | Bin 0 -> 73608 bytes .../debug/arm64-v8a/android_gradle_build.json | 59 +++ ...adle_build_hoko_blur_arm64-v8a.command.txt | 8 + ...radle_build_hoko_blur_arm64-v8a.stderr.txt | 0 ...radle_build_hoko_blur_arm64-v8a.stdout.txt | 1 + .../arm64-v8a/android_gradle_build_mini.json | 16 + ...ate_cmake_ninja_json_arm64-v8a.command.txt | 17 + ...rate_cmake_ninja_json_arm64-v8a.stderr.txt | 0 ...rate_cmake_ninja_json_arm64-v8a.stdout.txt | 16 + .../.cxx/cmake/debug/arm64-v8a/build.ninja | 147 ++++++ .../cmake/debug/arm64-v8a/build_command.txt | 17 + .../cmake/debug/arm64-v8a/build_model.json | 74 +++ .../cmake/debug/arm64-v8a/build_output.txt | 16 + .../cmake/debug/arm64-v8a/cmake_install.cmake | 44 ++ .../arm64-v8a/json_generation_record.json | 14 + .../.cxx/cmake/debug/arm64-v8a/rules.ninja | 64 +++ .../.cxx/cmake/debug/armeabi-v7a/.ninja_deps | Bin 0 -> 10116 bytes .../.cxx/cmake/debug/armeabi-v7a/.ninja_log | 6 + .../cmake/debug/armeabi-v7a/CMakeCache.txt | 331 ++++++++++++ .../CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake | 67 +++ .../3.6.0-rc2/CMakeCXXCompiler.cmake | 68 +++ .../3.6.0-rc2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 79556 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 79628 bytes .../CMakeFiles/3.6.0-rc2/CMakeSystem.cmake | 15 + .../armeabi-v7a/CMakeFiles/CMakeOutput.log | 477 ++++++++++++++++++ .../CMakeFiles/TargetDirectories.txt | 3 + .../armeabi-v7a/CMakeFiles/cmake.check_cache | 1 + .../armeabi-v7a/CMakeFiles/feature_tests.bin | Bin 0 -> 79416 bytes .../armeabi-v7a/CMakeFiles/feature_tests.c | 34 ++ .../armeabi-v7a/CMakeFiles/feature_tests.cxx | 405 +++++++++++++++ .../CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o | Bin 0 -> 60672 bytes .../hoko_blur.dir/BoxBlurFilter.cpp.o | Bin 0 -> 65064 bytes .../hoko_blur.dir/GaussianBlurFilter.cpp.o | Bin 0 -> 66788 bytes .../hoko_blur.dir/StackBlurFilter.cpp.o | Bin 0 -> 66920 bytes .../armeabi-v7a/android_gradle_build.json | 59 +++ ...le_build_hoko_blur_armeabi-v7a.command.txt | 8 + ...dle_build_hoko_blur_armeabi-v7a.stderr.txt | 0 ...dle_build_hoko_blur_armeabi-v7a.stdout.txt | 1 + .../android_gradle_build_mini.json | 16 + ...e_cmake_ninja_json_armeabi-v7a.command.txt | 17 + ...te_cmake_ninja_json_armeabi-v7a.stderr.txt | 0 ...te_cmake_ninja_json_armeabi-v7a.stdout.txt | 16 + .../.cxx/cmake/debug/armeabi-v7a/build.ninja | 147 ++++++ .../cmake/debug/armeabi-v7a/build_command.txt | 17 + .../cmake/debug/armeabi-v7a/build_model.json | 74 +++ .../cmake/debug/armeabi-v7a/build_output.txt | 16 + .../debug/armeabi-v7a/cmake_install.cmake | 44 ++ .../armeabi-v7a/json_generation_record.json | 26 + .../.cxx/cmake/debug/armeabi-v7a/rules.ninja | 64 +++ hoko-blur/.cxx/cmake/debug/x86/.ninja_deps | Bin 0 -> 10400 bytes hoko-blur/.cxx/cmake/debug/x86/.ninja_log | 6 + hoko-blur/.cxx/cmake/debug/x86/CMakeCache.txt | 331 ++++++++++++ .../CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake | 67 +++ .../3.6.0-rc2/CMakeCXXCompiler.cmake | 68 +++ .../3.6.0-rc2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 8164 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8244 bytes .../CMakeFiles/3.6.0-rc2/CMakeSystem.cmake | 15 + .../debug/x86/CMakeFiles/CMakeOutput.log | 443 ++++++++++++++++ .../x86/CMakeFiles/TargetDirectories.txt | 3 + .../debug/x86/CMakeFiles/cmake.check_cache | 1 + .../debug/x86/CMakeFiles/feature_tests.bin | Bin 0 -> 8016 bytes .../debug/x86/CMakeFiles/feature_tests.c | 34 ++ .../debug/x86/CMakeFiles/feature_tests.cxx | 405 +++++++++++++++ .../CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o | Bin 0 -> 59608 bytes .../hoko_blur.dir/BoxBlurFilter.cpp.o | Bin 0 -> 64120 bytes .../hoko_blur.dir/GaussianBlurFilter.cpp.o | Bin 0 -> 66676 bytes .../hoko_blur.dir/StackBlurFilter.cpp.o | Bin 0 -> 67596 bytes .../cmake/debug/x86/android_gradle_build.json | 59 +++ ...oid_gradle_build_hoko_blur_x86.command.txt | 8 + ...roid_gradle_build_hoko_blur_x86.stderr.txt | 0 ...roid_gradle_build_hoko_blur_x86.stdout.txt | 1 + .../debug/x86/android_gradle_build_mini.json | 16 + ..._generate_cmake_ninja_json_x86.command.txt | 17 + ...e_generate_cmake_ninja_json_x86.stderr.txt | 0 ...e_generate_cmake_ninja_json_x86.stdout.txt | 16 + hoko-blur/.cxx/cmake/debug/x86/build.ninja | 147 ++++++ .../.cxx/cmake/debug/x86/build_command.txt | 17 + .../.cxx/cmake/debug/x86/build_model.json | 74 +++ .../.cxx/cmake/debug/x86/build_output.txt | 16 + .../.cxx/cmake/debug/x86/cmake_install.cmake | 44 ++ .../debug/x86/json_generation_record.json | 14 + hoko-blur/.cxx/cmake/debug/x86/rules.ninja | 64 +++ .../.cxx/cmake/release/arm64-v8a/.ninja_deps | Bin 0 -> 9264 bytes .../.cxx/cmake/release/arm64-v8a/.ninja_log | 6 + .../cmake/release/arm64-v8a/CMakeCache.txt | 331 ++++++++++++ .../CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake | 67 +++ .../3.6.0-rc2/CMakeCXXCompiler.cmake | 68 +++ .../3.6.0-rc2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 10336 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 10352 bytes .../CMakeFiles/3.6.0-rc2/CMakeSystem.cmake | 15 + .../arm64-v8a/CMakeFiles/CMakeOutput.log | 447 ++++++++++++++++ .../CMakeFiles/TargetDirectories.txt | 3 + .../arm64-v8a/CMakeFiles/cmake.check_cache | 1 + .../arm64-v8a/CMakeFiles/feature_tests.bin | Bin 0 -> 14256 bytes .../arm64-v8a/CMakeFiles/feature_tests.c | 34 ++ .../arm64-v8a/CMakeFiles/feature_tests.cxx | 405 +++++++++++++++ .../CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o | Bin 0 -> 66960 bytes .../hoko_blur.dir/BoxBlurFilter.cpp.o | Bin 0 -> 23568 bytes .../hoko_blur.dir/GaussianBlurFilter.cpp.o | Bin 0 -> 27880 bytes .../hoko_blur.dir/StackBlurFilter.cpp.o | Bin 0 -> 26608 bytes .../arm64-v8a/android_gradle_build.json | 59 +++ ...adle_build_hoko_blur_arm64-v8a.command.txt | 8 + ...radle_build_hoko_blur_arm64-v8a.stderr.txt | 0 ...radle_build_hoko_blur_arm64-v8a.stdout.txt | 1 + .../arm64-v8a/android_gradle_build_mini.json | 16 + ...ate_cmake_ninja_json_arm64-v8a.command.txt | 17 + ...rate_cmake_ninja_json_arm64-v8a.stderr.txt | 0 ...rate_cmake_ninja_json_arm64-v8a.stdout.txt | 16 + .../.cxx/cmake/release/arm64-v8a/build.ninja | 147 ++++++ .../cmake/release/arm64-v8a/build_command.txt | 17 + .../cmake/release/arm64-v8a/build_model.json | 74 +++ .../cmake/release/arm64-v8a/build_output.txt | 16 + .../release/arm64-v8a/cmake_install.cmake | 44 ++ .../arm64-v8a/json_generation_record.json | 14 + .../.cxx/cmake/release/arm64-v8a/rules.ninja | 64 +++ .../cmake/release/armeabi-v7a/.ninja_deps | Bin 0 -> 10116 bytes .../.cxx/cmake/release/armeabi-v7a/.ninja_log | 6 + .../cmake/release/armeabi-v7a/CMakeCache.txt | 331 ++++++++++++ .../CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake | 67 +++ .../3.6.0-rc2/CMakeCXXCompiler.cmake | 68 +++ .../3.6.0-rc2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 79556 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 79632 bytes .../CMakeFiles/3.6.0-rc2/CMakeSystem.cmake | 15 + .../armeabi-v7a/CMakeFiles/CMakeOutput.log | 477 ++++++++++++++++++ .../CMakeFiles/TargetDirectories.txt | 3 + .../armeabi-v7a/CMakeFiles/cmake.check_cache | 1 + .../armeabi-v7a/CMakeFiles/feature_tests.bin | Bin 0 -> 79424 bytes .../armeabi-v7a/CMakeFiles/feature_tests.c | 34 ++ .../armeabi-v7a/CMakeFiles/feature_tests.cxx | 405 +++++++++++++++ .../CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o | Bin 0 -> 59336 bytes .../hoko_blur.dir/BoxBlurFilter.cpp.o | Bin 0 -> 15676 bytes .../hoko_blur.dir/GaussianBlurFilter.cpp.o | Bin 0 -> 17304 bytes .../hoko_blur.dir/StackBlurFilter.cpp.o | Bin 0 -> 19296 bytes .../armeabi-v7a/android_gradle_build.json | 59 +++ ...le_build_hoko_blur_armeabi-v7a.command.txt | 8 + ...dle_build_hoko_blur_armeabi-v7a.stderr.txt | 0 ...dle_build_hoko_blur_armeabi-v7a.stdout.txt | 1 + .../android_gradle_build_mini.json | 16 + ...e_cmake_ninja_json_armeabi-v7a.command.txt | 17 + ...te_cmake_ninja_json_armeabi-v7a.stderr.txt | 0 ...te_cmake_ninja_json_armeabi-v7a.stdout.txt | 16 + .../cmake/release/armeabi-v7a/build.ninja | 147 ++++++ .../release/armeabi-v7a/build_command.txt | 17 + .../release/armeabi-v7a/build_model.json | 74 +++ .../release/armeabi-v7a/build_output.txt | 16 + .../release/armeabi-v7a/cmake_install.cmake | 44 ++ .../armeabi-v7a/json_generation_record.json | 26 + .../cmake/release/armeabi-v7a/rules.ninja | 64 +++ hoko-blur/.cxx/cmake/release/x86/.ninja_deps | Bin 0 -> 10400 bytes hoko-blur/.cxx/cmake/release/x86/.ninja_log | 6 + .../.cxx/cmake/release/x86/CMakeCache.txt | 331 ++++++++++++ .../CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake | 67 +++ .../3.6.0-rc2/CMakeCXXCompiler.cmake | 68 +++ .../3.6.0-rc2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 8168 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8248 bytes .../CMakeFiles/3.6.0-rc2/CMakeSystem.cmake | 15 + .../release/x86/CMakeFiles/CMakeOutput.log | 443 ++++++++++++++++ .../x86/CMakeFiles/TargetDirectories.txt | 3 + .../release/x86/CMakeFiles/cmake.check_cache | 1 + .../release/x86/CMakeFiles/feature_tests.bin | Bin 0 -> 8020 bytes .../release/x86/CMakeFiles/feature_tests.c | 34 ++ .../release/x86/CMakeFiles/feature_tests.cxx | 405 +++++++++++++++ .../CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o | Bin 0 -> 58348 bytes .../hoko_blur.dir/BoxBlurFilter.cpp.o | Bin 0 -> 14452 bytes .../hoko_blur.dir/GaussianBlurFilter.cpp.o | Bin 0 -> 18156 bytes .../hoko_blur.dir/StackBlurFilter.cpp.o | Bin 0 -> 18776 bytes .../release/x86/android_gradle_build.json | 59 +++ ...oid_gradle_build_hoko_blur_x86.command.txt | 8 + ...roid_gradle_build_hoko_blur_x86.stderr.txt | 0 ...roid_gradle_build_hoko_blur_x86.stdout.txt | 1 + .../x86/android_gradle_build_mini.json | 16 + ..._generate_cmake_ninja_json_x86.command.txt | 17 + ...e_generate_cmake_ninja_json_x86.stderr.txt | 0 ...e_generate_cmake_ninja_json_x86.stdout.txt | 16 + hoko-blur/.cxx/cmake/release/x86/build.ninja | 147 ++++++ .../.cxx/cmake/release/x86/build_command.txt | 17 + .../.cxx/cmake/release/x86/build_model.json | 74 +++ .../.cxx/cmake/release/x86/build_output.txt | 16 + .../cmake/release/x86/cmake_install.cmake | 44 ++ .../release/x86/json_generation_record.json | 14 + hoko-blur/.cxx/cmake/release/x86/rules.ninja | 64 +++ hoko-blur/.cxx/ndk_locator_record.json | 37 ++ hoko-blur/.gitignore | 1 + hoko-blur/build.gradle | 66 +++ hoko-blur/proguard-rules.pro | 17 + .../java/com/hoko/blur/ApplicationTest.java | 13 + hoko-blur/src/main/AndroidManifest.xml | 14 + .../src/main/java/com/hoko/blur/HokoBlur.java | 30 ++ .../java/com/hoko/blur/anno/Direction.java | 19 + .../main/java/com/hoko/blur/anno/Mode.java | 19 + .../com/hoko/blur/anno/NotThreadSafe.java | 13 + .../main/java/com/hoko/blur/anno/Scheme.java | 20 + .../java/com/hoko/blur/anno/ThreadSafe.java | 14 + .../java/com/hoko/blur/api/IBlurBuild.java | 48 ++ .../com/hoko/blur/api/IBlurProcessor.java | 46 ++ .../hoko/blur/api/IBlurResultDispatcher.java | 7 + .../java/com/hoko/blur/api/IFrameBuffer.java | 16 + .../main/java/com/hoko/blur/api/IProgram.java | 10 + .../java/com/hoko/blur/api/IRenderer.java | 11 + .../main/java/com/hoko/blur/api/ITexture.java | 19 + .../com/hoko/blur/filter/BoxBlurFilter.java | 117 +++++ .../hoko/blur/filter/GaussianBlurFilter.java | 127 +++++ .../hoko/blur/filter/NativeBlurFilter.java | 40 ++ .../hoko/blur/filter/OriginBlurFilter.java | 98 ++++ .../com/hoko/blur/filter/StackBlurFilter.java | 277 ++++++++++ .../com/hoko/blur/opengl/cache/CachePool.java | 123 +++++ .../blur/opengl/cache/FrameBufferCache.java | 84 +++ .../hoko/blur/opengl/cache/TextureCache.java | 69 +++ .../blur/opengl/framebuffer/FrameBuffer.java | 77 +++ .../framebuffer/FrameBufferFactory.java | 27 + .../hoko/blur/opengl/offscreen/EglBuffer.java | 168 ++++++ .../offscreen/OffScreenBlurRenderer.java | 272 ++++++++++ .../com/hoko/blur/opengl/program/Program.java | 85 ++++ .../blur/opengl/program/ProgramFactory.java | 10 + .../blur/opengl/texture/BitmapTexture.java | 37 ++ .../blur/opengl/texture/SimpleTexture.java | 26 + .../com/hoko/blur/opengl/texture/Texture.java | 68 +++ .../blur/opengl/texture/TextureFactory.java | 23 + .../java/com/hoko/blur/opengl/util/Size.java | 71 +++ .../hoko/blur/processor/BlurProcessor.java | 164 ++++++ .../blur/processor/BlurProcessorFactory.java | 31 ++ .../hoko/blur/processor/HokoBlurBuild.java | 130 +++++ .../blur/processor/NativeBlurProcessor.java | 70 +++ .../blur/processor/OpenGLBlurProcessor.java | 44 ++ .../blur/processor/OriginBlurProcessor.java | 51 ++ .../processor/RenderScriptBlurProcessor.java | 151 ++++++ .../task/AndroidBlurResultDispatcher.java | 30 ++ .../com/hoko/blur/task/AsyncBlurTask.java | 59 +++ .../hoko/blur/task/BitmapAsyncBlurTask.java | 17 + .../java/com/hoko/blur/task/BlurResult.java | 49 ++ .../hoko/blur/task/BlurResultRunnable.java | 33 ++ .../java/com/hoko/blur/task/BlurSubTask.java | 74 +++ .../com/hoko/blur/task/BlurTaskManager.java | 57 +++ .../com/hoko/blur/task/ViewAsyncBlurTask.java | 18 + .../java/com/hoko/blur/util/BitmapUtil.java | 81 +++ .../java/com/hoko/blur/util/MathUtil.java | 17 + .../com/hoko/blur/util/Preconditions.java | 36 ++ .../java/com/hoko/blur/util/ShaderUtil.java | 165 ++++++ .../com/hoko/blur/util/SingleMainHandler.java | 20 + .../com/hoko/blur/view/DragBlurringView.java | 139 +++++ .../hoko/blur/view/RsBlurLinearLayout.java | 116 +++++ hoko-blur/src/main/jni/BlurUtil.cpp | 78 +++ hoko-blur/src/main/jni/BoxBlurFilter.cpp | 158 ++++++ hoko-blur/src/main/jni/CMakeLists.txt | 23 + hoko-blur/src/main/jni/GaussianBlurFilter.cpp | 178 +++++++ hoko-blur/src/main/jni/StackBlurFilter.cpp | 288 +++++++++++ hoko-blur/src/main/jni/include/BlurUtil.h | 32 ++ .../src/main/jni/include/BoxBlurFilter.h | 22 + .../src/main/jni/include/GaussianBlurFilter.h | 28 + .../src/main/jni/include/StackBlurFilter.h | 22 + hoko-blur/src/main/res/values/strings.xml | 3 + hoko-blur/src/main/rs/BoxBlur.rs | 64 +++ hoko-blur/src/main/rs/StackBlur.rs | 69 +++ .../java/com/hoko/blur/ExampleUnitTest.java | 15 + settings.gradle | 1 + 272 files changed, 16048 insertions(+) create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/.ninja_deps create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/.ninja_log create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeCache.txt create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake create mode 100755 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_C.bin create mode 100755 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeOutput.log create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/TargetDirectories.txt create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/cmake.check_cache create mode 100755 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.bin create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.c create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/android_gradle_build.json create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/android_gradle_build_hoko_blur_arm64-v8a.command.txt create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/android_gradle_build_hoko_blur_arm64-v8a.stderr.txt create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/android_gradle_build_hoko_blur_arm64-v8a.stdout.txt create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/android_gradle_build_mini.json create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/android_gradle_generate_cmake_ninja_json_arm64-v8a.command.txt create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/android_gradle_generate_cmake_ninja_json_arm64-v8a.stderr.txt create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/android_gradle_generate_cmake_ninja_json_arm64-v8a.stdout.txt create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/build.ninja create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/build_command.txt create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/build_model.json create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/build_output.txt create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/cmake_install.cmake create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/json_generation_record.json create mode 100644 hoko-blur/.cxx/cmake/debug/arm64-v8a/rules.ninja create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/.ninja_deps create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/.ninja_log create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeCache.txt create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake create mode 100755 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_C.bin create mode 100755 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeOutput.log create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/TargetDirectories.txt create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cmake.check_cache create mode 100755 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.bin create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.c create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_hoko_blur_armeabi-v7a.command.txt create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_hoko_blur_armeabi-v7a.stderr.txt create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_hoko_blur_armeabi-v7a.stdout.txt create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_mini.json create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_generate_cmake_ninja_json_armeabi-v7a.command.txt create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_generate_cmake_ninja_json_armeabi-v7a.stderr.txt create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_generate_cmake_ninja_json_armeabi-v7a.stdout.txt create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/build.ninja create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_command.txt create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_model.json create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_output.txt create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/cmake_install.cmake create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/json_generation_record.json create mode 100644 hoko-blur/.cxx/cmake/debug/armeabi-v7a/rules.ninja create mode 100644 hoko-blur/.cxx/cmake/debug/x86/.ninja_deps create mode 100644 hoko-blur/.cxx/cmake/debug/x86/.ninja_log create mode 100644 hoko-blur/.cxx/cmake/debug/x86/CMakeCache.txt create mode 100644 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake create mode 100644 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake create mode 100755 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_C.bin create mode 100755 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake create mode 100644 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeOutput.log create mode 100644 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/TargetDirectories.txt create mode 100644 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/cmake.check_cache create mode 100755 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.bin create mode 100644 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.c create mode 100644 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx create mode 100644 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o create mode 100644 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/debug/x86/android_gradle_build.json create mode 100644 hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_hoko_blur_x86.command.txt create mode 100644 hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_hoko_blur_x86.stderr.txt create mode 100644 hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_hoko_blur_x86.stdout.txt create mode 100644 hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_mini.json create mode 100644 hoko-blur/.cxx/cmake/debug/x86/android_gradle_generate_cmake_ninja_json_x86.command.txt create mode 100644 hoko-blur/.cxx/cmake/debug/x86/android_gradle_generate_cmake_ninja_json_x86.stderr.txt create mode 100644 hoko-blur/.cxx/cmake/debug/x86/android_gradle_generate_cmake_ninja_json_x86.stdout.txt create mode 100644 hoko-blur/.cxx/cmake/debug/x86/build.ninja create mode 100644 hoko-blur/.cxx/cmake/debug/x86/build_command.txt create mode 100644 hoko-blur/.cxx/cmake/debug/x86/build_model.json create mode 100644 hoko-blur/.cxx/cmake/debug/x86/build_output.txt create mode 100644 hoko-blur/.cxx/cmake/debug/x86/cmake_install.cmake create mode 100644 hoko-blur/.cxx/cmake/debug/x86/json_generation_record.json create mode 100644 hoko-blur/.cxx/cmake/debug/x86/rules.ninja create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/.ninja_deps create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/.ninja_log create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeCache.txt create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake create mode 100755 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_C.bin create mode 100755 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeOutput.log create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/TargetDirectories.txt create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/cmake.check_cache create mode 100755 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.bin create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.c create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.cxx create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build.json create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_hoko_blur_arm64-v8a.command.txt create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_hoko_blur_arm64-v8a.stderr.txt create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_hoko_blur_arm64-v8a.stdout.txt create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_mini.json create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_generate_cmake_ninja_json_arm64-v8a.command.txt create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_generate_cmake_ninja_json_arm64-v8a.stderr.txt create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_generate_cmake_ninja_json_arm64-v8a.stdout.txt create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/build.ninja create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/build_command.txt create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/build_model.json create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/build_output.txt create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/cmake_install.cmake create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/json_generation_record.json create mode 100644 hoko-blur/.cxx/cmake/release/arm64-v8a/rules.ninja create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/.ninja_deps create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/.ninja_log create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeCache.txt create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake create mode 100755 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_C.bin create mode 100755 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeOutput.log create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/TargetDirectories.txt create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/cmake.check_cache create mode 100755 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.bin create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.c create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.cxx create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/android_gradle_build.json create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/android_gradle_build_hoko_blur_armeabi-v7a.command.txt create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/android_gradle_build_hoko_blur_armeabi-v7a.stderr.txt create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/android_gradle_build_hoko_blur_armeabi-v7a.stdout.txt create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/android_gradle_build_mini.json create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/android_gradle_generate_cmake_ninja_json_armeabi-v7a.command.txt create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/android_gradle_generate_cmake_ninja_json_armeabi-v7a.stderr.txt create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/android_gradle_generate_cmake_ninja_json_armeabi-v7a.stdout.txt create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/build.ninja create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/build_command.txt create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/build_model.json create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/build_output.txt create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/cmake_install.cmake create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/json_generation_record.json create mode 100644 hoko-blur/.cxx/cmake/release/armeabi-v7a/rules.ninja create mode 100644 hoko-blur/.cxx/cmake/release/x86/.ninja_deps create mode 100644 hoko-blur/.cxx/cmake/release/x86/.ninja_log create mode 100644 hoko-blur/.cxx/cmake/release/x86/CMakeCache.txt create mode 100644 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake create mode 100644 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake create mode 100755 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_C.bin create mode 100755 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake create mode 100644 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeOutput.log create mode 100644 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/TargetDirectories.txt create mode 100644 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/cmake.check_cache create mode 100755 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/feature_tests.bin create mode 100644 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/feature_tests.c create mode 100644 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/feature_tests.cxx create mode 100644 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o create mode 100644 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/release/x86/CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o create mode 100644 hoko-blur/.cxx/cmake/release/x86/android_gradle_build.json create mode 100644 hoko-blur/.cxx/cmake/release/x86/android_gradle_build_hoko_blur_x86.command.txt create mode 100644 hoko-blur/.cxx/cmake/release/x86/android_gradle_build_hoko_blur_x86.stderr.txt create mode 100644 hoko-blur/.cxx/cmake/release/x86/android_gradle_build_hoko_blur_x86.stdout.txt create mode 100644 hoko-blur/.cxx/cmake/release/x86/android_gradle_build_mini.json create mode 100644 hoko-blur/.cxx/cmake/release/x86/android_gradle_generate_cmake_ninja_json_x86.command.txt create mode 100644 hoko-blur/.cxx/cmake/release/x86/android_gradle_generate_cmake_ninja_json_x86.stderr.txt create mode 100644 hoko-blur/.cxx/cmake/release/x86/android_gradle_generate_cmake_ninja_json_x86.stdout.txt create mode 100644 hoko-blur/.cxx/cmake/release/x86/build.ninja create mode 100644 hoko-blur/.cxx/cmake/release/x86/build_command.txt create mode 100644 hoko-blur/.cxx/cmake/release/x86/build_model.json create mode 100644 hoko-blur/.cxx/cmake/release/x86/build_output.txt create mode 100644 hoko-blur/.cxx/cmake/release/x86/cmake_install.cmake create mode 100644 hoko-blur/.cxx/cmake/release/x86/json_generation_record.json create mode 100644 hoko-blur/.cxx/cmake/release/x86/rules.ninja create mode 100644 hoko-blur/.cxx/ndk_locator_record.json create mode 100644 hoko-blur/.gitignore create mode 100644 hoko-blur/build.gradle create mode 100644 hoko-blur/proguard-rules.pro create mode 100644 hoko-blur/src/androidTest/java/com/hoko/blur/ApplicationTest.java create mode 100644 hoko-blur/src/main/AndroidManifest.xml create mode 100644 hoko-blur/src/main/java/com/hoko/blur/HokoBlur.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/anno/Direction.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/anno/Mode.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/anno/NotThreadSafe.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/anno/Scheme.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/anno/ThreadSafe.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/api/IBlurBuild.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/api/IBlurProcessor.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/api/IBlurResultDispatcher.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/api/IFrameBuffer.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/api/IProgram.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/api/IRenderer.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/api/ITexture.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/filter/BoxBlurFilter.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/filter/GaussianBlurFilter.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/filter/NativeBlurFilter.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/filter/OriginBlurFilter.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/filter/StackBlurFilter.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/opengl/cache/CachePool.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/opengl/cache/FrameBufferCache.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/opengl/cache/TextureCache.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/opengl/framebuffer/FrameBuffer.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/opengl/framebuffer/FrameBufferFactory.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/opengl/offscreen/EglBuffer.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/opengl/offscreen/OffScreenBlurRenderer.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/opengl/program/Program.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/opengl/program/ProgramFactory.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/opengl/texture/BitmapTexture.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/opengl/texture/SimpleTexture.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/opengl/texture/Texture.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/opengl/texture/TextureFactory.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/opengl/util/Size.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/processor/BlurProcessor.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/processor/BlurProcessorFactory.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/processor/HokoBlurBuild.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/processor/NativeBlurProcessor.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/processor/OpenGLBlurProcessor.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/processor/OriginBlurProcessor.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/processor/RenderScriptBlurProcessor.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/task/AndroidBlurResultDispatcher.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/task/AsyncBlurTask.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/task/BitmapAsyncBlurTask.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/task/BlurResult.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/task/BlurResultRunnable.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/task/BlurSubTask.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/task/BlurTaskManager.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/task/ViewAsyncBlurTask.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/util/BitmapUtil.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/util/MathUtil.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/util/Preconditions.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/util/ShaderUtil.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/util/SingleMainHandler.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/view/DragBlurringView.java create mode 100644 hoko-blur/src/main/java/com/hoko/blur/view/RsBlurLinearLayout.java create mode 100644 hoko-blur/src/main/jni/BlurUtil.cpp create mode 100644 hoko-blur/src/main/jni/BoxBlurFilter.cpp create mode 100644 hoko-blur/src/main/jni/CMakeLists.txt create mode 100644 hoko-blur/src/main/jni/GaussianBlurFilter.cpp create mode 100644 hoko-blur/src/main/jni/StackBlurFilter.cpp create mode 100644 hoko-blur/src/main/jni/include/BlurUtil.h create mode 100644 hoko-blur/src/main/jni/include/BoxBlurFilter.h create mode 100644 hoko-blur/src/main/jni/include/GaussianBlurFilter.h create mode 100644 hoko-blur/src/main/jni/include/StackBlurFilter.h create mode 100644 hoko-blur/src/main/res/values/strings.xml create mode 100644 hoko-blur/src/main/rs/BoxBlur.rs create mode 100644 hoko-blur/src/main/rs/StackBlur.rs create mode 100644 hoko-blur/src/test/java/com/hoko/blur/ExampleUnitTest.java diff --git a/hoko-blur/.cxx/cmake/debug/arm64-v8a/.ninja_deps b/hoko-blur/.cxx/cmake/debug/arm64-v8a/.ninja_deps new file mode 100644 index 0000000000000000000000000000000000000000..2b657a7335737b5404fc91ecad7d903a31053890 GIT binary patch literal 9264 zcmY#Z$ji*jN=!*DDCS~jU|`T;U|?|eP0UVp%gjkF*3Zb#&W}&ZDJ{}V$t==$$|)@h zEy>K$OD-tT%V+ri|Nnm<1_lQGjQreG{lwhN68(ar{H)aEl45FGxPMb@-k7(V_;zT_y7O@07}fu%uCKGO-V(Vo5Aq+|Ns9vsAf9m zr4;37rsxN!Wb5apWa}Fl=o#vnTAEl`nwaR9BB6|%FEQtVEFU@|Nj!I+n1A>WM-nDoRgTB zu5Y1dpl1%ZwYVfDu_#?Ht+0)NgQJf>*C5{{p6I?v|?~LfB*mge+^yy znh4DzWvNBQnfZB{dFdbre51Sli3ORuIjLo-IUws9zW)FJzlSdVPs%JQ)=y6@iBCx_ z%S=v+k6w&tR+H{r~^Jh3a_>clwHt zhj=XayBWmBsZ}D6!EWV67SgR z7MR^R`Jlr6)&KwhV;C437#J8B_}^WRWn^GrU}9ik0JRBO7#J8>85kJY7#JAX85kHi z7#J8h85kJ27#JA185kIN7#J9M85kJ&KzbP%7z7v?7z7y@7=#!Y7=#%Z7(^Ht7(^Ku z7)(#@}+c2G%W0kqzILN|NCjedQY&5!^8|KEX{ZfMk(NK7nB z&M-641>3I+%c+UQxp22UqFddVSe&byo|>0hl$i{-oq^%ufY_gzSE8GfV`ie4@!s|3L*PQh%6M=>sWFP+f74Zt((6oB9R$#hDfHupGj` zaF@<`6ViIn%eX^le<$bX7G&n67QwuJn{I6eNVvo72NlG(20>mxPX{*#Brl-4;s)K) z1Sk*cLpy1(6v4o7oxb)Lr>16u21bfY67#@4m}_)PlVJZBmlTyIm&B)K=A`OnT&0`c zh;~p;W)dhnFkGQ|8I+TsoS1_=1_!qKGCkX1U>g}2F44`-#2k>XK>>V`=HUx#V1v_D zd15BGOUQ76ZuUaTSeV7<=@!Ph;6Mh2@j1HLSpkYxP?lvlOTYFlbbK)A zV322EU{GLSU{GXWU{GRUU{GdYU{GOTU{GaXU{GUVU{GgZV9;P-V9;b>V9;VUxD8HJxyuf*9qNB28L7r z|NjpGxs}{G8(7vvH9O-ZG`>K6e9-uTDFXw8*$|8`&^QGszCdFi7Wl?1+!ITSi!&4R z&?Ak3f#C$DVT|2uhU1Vi8uI7cU~z}Ve9%13F}jtn&^kLeu_Qw;gW)L6?FAQc@cJ5R zEyEGI%?(0qJWTI45z<)pA)16S?r~k1)d%TTkHKtYU^qY%zhWChg{I@QoczQRy^Q@d zu@`q3L#<`lM-zLo`4`eIf`#;6`u1-iojaK23=9l==$)TH!yNG?MTwau#k=Vi=Fl{j z3>oRzMQ?kdQ@}gvZ7(FA8FtVujX}dXKE5o71dxG*p< UxH2#>xG^v=xHB*?c%Zdm0i$pn(*OVf literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/arm64-v8a/.ninja_log b/hoko-blur/.cxx/cmake/debug/arm64-v8a/.ninja_log new file mode 100644 index 0000000000..20e864fa73 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/arm64-v8a/.ninja_log @@ -0,0 +1,6 @@ +# ninja log v5 +2 430 0 CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o d5520791421f4d69 +3 439 0 CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o 8fa7336601060925 +4 492 0 CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o 58f0e11d4a48c512 +4 615 0 CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o 469043b37c1b1ec8 +615 737 0 /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/arm64-v8a/libhoko_blur.so b8822b08789647db diff --git a/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeCache.txt b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeCache.txt new file mode 100644 index 0000000000..b29d3560f5 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeCache.txt @@ -0,0 +1,331 @@ +# This is the CMakeCache file. +# For build in directory: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a +# It was generated by CMake: /home/amit/Android/Sdk/cmake/3.6.4111459/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=/home/amit/Android/Sdk/ndk/20.1.5948944 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-13 + +//No help, variable specified on the command line. +ANDROID_TOOLCHAIN:UNINITIALIZED=clang + +//Archiver +CMAKE_AR:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-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(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING=Debug + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING=-std=c++11 -frtti -fexceptions + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//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 compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//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 release minsize 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 Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//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=/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/arm64-v8a + +//Path to a program. +CMAKE_LINKER:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ld + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-objdump + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Hoko_blur + +//Ranlib +CMAKE_RANLIB:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ranlib + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info 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. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-strip + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/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 +Hoko_blur_BINARY_DIR:STATIC=/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a + +//Value Computed by CMake +Hoko_blur_SOURCE_DIR:STATIC=/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni + +//Path to a library. +graphics-lib:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/libjnigraphics.so + +//Dependencies for the target +hoko_blur_LIB_DEPENDS:STATIC=general;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so;general;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/libjnigraphics.so; + +//Path to a library. +log-lib:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so + + +######################## +# INTERNAL cache entries +######################## + +//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=/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/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=6 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=0 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ctest +//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_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_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 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL=Android Gradle +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//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=/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//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 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6 +//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 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 + diff --git a/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake new file mode 100644 index 0000000000..c4c12ba822 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake @@ -0,0 +1,67 @@ +set(CMAKE_C_COMPILER "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "8.0") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_static_assert") + +set(CMAKE_C_PLATFORM_ID "") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + +set(CMAKE_AR "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar") +set(CMAKE_RANLIB "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ranlib") +set(CMAKE_LINKER "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ld") +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_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +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_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_LINK_LIBRARIES "dl;c;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib64;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake new file mode 100644 index 0000000000..322b875de6 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake @@ -0,0 +1,68 @@ +set(CMAKE_CXX_COMPILER "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "8.0") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;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_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_CXX98_COMPILE_FEATURES "cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "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_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_CXX_PLATFORM_ID "") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + +set(CMAKE_AR "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar") +set(CMAKE_RANLIB "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ranlib") +set(CMAKE_LINKER "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ld") +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_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +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_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_LINK_LIBRARIES "c++;m;dl;c;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib64;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_C.bin b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..625de16e91d39b70a2bb81c2abf4e51aa2978e2d GIT binary patch literal 10336 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 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_CXX.bin b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..1188c19fc587603974ea1d9ac6613c1ceb7e8b19 GIT binary patch literal 10352 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 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake new file mode 100644 index 0000000000..3f32743439 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.0.0-36-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.0.0-36-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + +include("/home/amit/Android/Sdk/ndk/20.1.5948944/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/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeOutput.log b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000000..481bc75c5b --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeOutput.log @@ -0,0 +1,447 @@ +The target system is: Android - 1 - aarch64 +The host system is: Linux - 5.0.0-36-generic - x86_64 +Determining if the C compiler works passed with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_d07c5" +[1/2] Building C object CMakeFiles/cmTC_d07c5.dir/testCCompiler.c.o +[2/2] Linking C executable cmTC_d07c5 + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_7aa4d" +[1/2] Building C object CMakeFiles/cmTC_7aa4d.dir/CMakeCCompilerABI.c.o +[2/2] Linking C executable cmTC_7aa4d +Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn) +Target: aarch64-none-linux-android21 +Thread model: posix +InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x +Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x +Candidate multilib: .;@m64 +Selected multilib: .;@m64 + "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -EL --fix-cortex-a53-843419 -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m aarch64linux -dynamic-linker /system/bin/linker64 -o cmTC_7aa4d /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_7aa4d.dir/CMakeCCompilerABI.c.o -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtend_android.o + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(aarch64-linux-android-ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_7aa4d"] + ignore line: [[1/2] Building C object CMakeFiles/cmTC_7aa4d.dir/CMakeCCompilerABI.c.o] + ignore line: [[2/2] Linking C executable cmTC_7aa4d] + ignore line: [Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn)] + ignore line: [Target: aarch64-none-linux-android21] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + ignore line: [Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + ignore line: [Candidate multilib: .] + ignore line: [@m64] + ignore line: [Selected multilib: .] + ignore line: [@m64] + link line: [ "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -EL --fix-cortex-a53-843419 -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m aarch64linux -dynamic-linker /system/bin/linker64 -o cmTC_7aa4d /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_7aa4d.dir/CMakeCCompilerABI.c.o -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtend_android.o] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld] ==> ignore + arg [--sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-pie] ==> ignore + arg [-EL] ==> ignore + arg [--fix-cortex-a53-843419] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--hash-style=both] ==> ignore + arg [--enable-new-dtags] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [aarch64linux] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker64] ==> ignore + arg [-o] ==> ignore + arg [cmTC_7aa4d] ==> ignore + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_dynamic.o] ==> ignore + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--exclude-libs] ==> ignore + arg [libgcc.a] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libatomic.a] ==> ignore + arg [--build-id] ==> ignore + arg [--warn-shared-textrel] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--no-undefined] ==> ignore + arg [-znoexecstack] ==> ignore + arg [--gc-sections] ==> ignore + arg [CMakeFiles/cmTC_7aa4d.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtend_android.o] ==> ignore + remove lib [gcc] + remove lib [gcc] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib64] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [dl;c;dl] + implicit dirs: [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib64;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_85f9a" +[1/2] Building C object CMakeFiles/cmTC_85f9a.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_85f9a + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_7625e" +[1/2] Building C object CMakeFiles/cmTC_7625e.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_7625e + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_76cac" +[1/2] Building C object CMakeFiles/cmTC_76cac.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_76cac + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_58a2b" +[1/2] Building CXX object CMakeFiles/cmTC_58a2b.dir/testCXXCompiler.cxx.o +[2/2] Linking CXX executable cmTC_58a2b + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_90ba1" +[1/2] Building CXX object CMakeFiles/cmTC_90ba1.dir/CMakeCXXCompilerABI.cpp.o +[2/2] Linking CXX executable cmTC_90ba1 +Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn) +Target: aarch64-none-linux-android21 +Thread model: posix +InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x +Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x +Candidate multilib: .;@m64 +Selected multilib: .;@m64 + "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -EL --fix-cortex-a53-843419 -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m aarch64linux -dynamic-linker /system/bin/linker64 -o cmTC_90ba1 /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_90ba1.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lc++ -Bdynamic -lm -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtend_android.o + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(aarch64-linux-android-ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_90ba1"] + ignore line: [[1/2] Building CXX object CMakeFiles/cmTC_90ba1.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [[2/2] Linking CXX executable cmTC_90ba1] + ignore line: [Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn)] + ignore line: [Target: aarch64-none-linux-android21] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + ignore line: [Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + ignore line: [Candidate multilib: .] + ignore line: [@m64] + ignore line: [Selected multilib: .] + ignore line: [@m64] + link line: [ "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -EL --fix-cortex-a53-843419 -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m aarch64linux -dynamic-linker /system/bin/linker64 -o cmTC_90ba1 /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_90ba1.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lc++ -Bdynamic -lm -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtend_android.o] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld] ==> ignore + arg [--sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-pie] ==> ignore + arg [-EL] ==> ignore + arg [--fix-cortex-a53-843419] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--hash-style=both] ==> ignore + arg [--enable-new-dtags] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [aarch64linux] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker64] ==> ignore + arg [-o] ==> ignore + arg [cmTC_90ba1] ==> ignore + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_dynamic.o] ==> ignore + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--exclude-libs] ==> ignore + arg [libgcc.a] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libatomic.a] ==> ignore + arg [--build-id] ==> ignore + arg [--warn-shared-textrel] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--no-undefined] ==> ignore + arg [-znoexecstack] ==> ignore + arg [--gc-sections] ==> ignore + arg [CMakeFiles/cmTC_90ba1.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-Bstatic] ==> ignore + arg [-lc++] ==> lib [c++] + arg [-Bdynamic] ==> ignore + arg [-lm] ==> lib [m] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtend_android.o] ==> ignore + remove lib [gcc] + remove lib [gcc] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib64] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [c++;m;dl;c;dl] + implicit dirs: [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib64;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_32ade" +[1/2] Building CXX object CMakeFiles/cmTC_32ade.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_32ade + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_dea98" +[1/2] Building CXX object CMakeFiles/cmTC_dea98.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_dea98 + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_e444d" +[1/2] Building CXX object CMakeFiles/cmTC_e444d.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_e444d + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/TargetDirectories.txt b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000000..60c362a3fe --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/edit_cache.dir +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/rebuild_cache.dir +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/hoko_blur.dir diff --git a/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/cmake.check_cache b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000000..3dccd73172 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/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/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.bin b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..638e43f4f069bbb3e98c7042375d094a41269474 GIT binary patch literal 14248 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 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.c b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.c new file mode 100644 index 0000000000..90a87b17ad --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx new file mode 100644 index 0000000000..a9b4791caf --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_aggregate_nsdmi) +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alias_templates) +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_attributes) +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_auto_type) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_binary_literals) +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_constexpr) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_contextual_conversions) +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_decltype) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_decltype_incomplete_return_types) +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_default_function_template_args) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_delegating_constructors) +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_deleted_functions) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_explicit_conversions) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_inheriting_constructors) +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_lambdas) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_init_captures) +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_local_type_template_args) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_noexcept) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_nonstatic_member_init) +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_nullptr) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_range_for) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_raw_string_literals) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_reference_qualified_functions) +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_relaxed_constexpr) +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_return_type_deduction) +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_rvalue_references) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_static_assert) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_strong_enums) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 199711L +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_thread_local) +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_trailing_return) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_unicode_literals) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_unrestricted_unions) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_user_literals) +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_variable_templates) +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_variadic_templates) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o b/hoko-blur/.cxx/cmake/debug/arm64-v8a/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..50453c7bd10cefbf23b4a828757a0bce6cc9922c GIT binary patch literal 65456 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

(*R*3F+l+aYUx5G;vxM9 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 S6*HoSf2%$t!&I0glDz ignore + arg [--sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-pie] ==> ignore + arg [-EL] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-X] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--hash-style=both] ==> ignore + arg [--enable-new-dtags] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [armelf_linux_eabi] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker] ==> ignore + arg [-o] ==> ignore + arg [cmTC_10dce] ==> ignore + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtbegin_dynamic.o] ==> ignore + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--exclude-libs] ==> ignore + arg [libgcc.a] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libatomic.a] ==> ignore + arg [--build-id] ==> ignore + arg [--warn-shared-textrel] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libunwind.a] ==> ignore + arg [--no-undefined] ==> ignore + arg [-znoexecstack] ==> ignore + arg [--gc-sections] ==> ignore + arg [CMakeFiles/cmTC_10dce.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtend_android.o] ==> ignore + remove lib [gcc] + remove lib [gcc] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [dl;c;dl] + implicit dirs: [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_84a25" +[1/2] Building C object CMakeFiles/cmTC_84a25.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_84a25 + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_422b7" +[1/2] Building C object CMakeFiles/cmTC_422b7.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_422b7 + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_332e3" +[1/2] Building C object CMakeFiles/cmTC_332e3.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_332e3 + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_f6adb" +[1/2] Building CXX object CMakeFiles/cmTC_f6adb.dir/testCXXCompiler.cxx.o +[2/2] Linking CXX executable cmTC_f6adb + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_d5d2a" +[1/2] Building CXX object CMakeFiles/cmTC_d5d2a.dir/CMakeCXXCompilerABI.cpp.o +[2/2] Linking CXX executable cmTC_d5d2a +Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn) +Target: armv7-none-linux-android16 +Thread model: posix +InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x +Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x +Candidate multilib: thumb;@mthumb +Candidate multilib: armv7-a;@march=armv7-a +Candidate multilib: armv7-a/thumb;@march=armv7-a@mthumb +Candidate multilib: .; +Selected multilib: armv7-a/thumb;@march=armv7-a@mthumb + "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -EL -z now -z relro -X --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m armelf_linux_eabi -dynamic-linker /system/bin/linker -o cmTC_d5d2a /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --exclude-libs libunwind.a --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_d5d2a.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lc++ -Bdynamic -lm -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtend_android.o + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(arm-linux-androideabi-ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_d5d2a"] + ignore line: [[1/2] Building CXX object CMakeFiles/cmTC_d5d2a.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [[2/2] Linking CXX executable cmTC_d5d2a] + ignore line: [Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn)] + ignore line: [Target: armv7-none-linux-android16] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x] + ignore line: [Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x] + ignore line: [Candidate multilib: thumb] + ignore line: [@mthumb] + ignore line: [Candidate multilib: armv7-a] + ignore line: [@march=armv7-a] + ignore line: [Candidate multilib: armv7-a/thumb] + ignore line: [@march=armv7-a@mthumb] + ignore line: [Candidate multilib: .] + ignore line: [] + ignore line: [Selected multilib: armv7-a/thumb] + ignore line: [@march=armv7-a@mthumb] + link line: [ "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -EL -z now -z relro -X --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m armelf_linux_eabi -dynamic-linker /system/bin/linker -o cmTC_d5d2a /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --exclude-libs libunwind.a --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_d5d2a.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lc++ -Bdynamic -lm -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtend_android.o] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld] ==> ignore + arg [--sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-pie] ==> ignore + arg [-EL] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-X] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--hash-style=both] ==> ignore + arg [--enable-new-dtags] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [armelf_linux_eabi] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker] ==> ignore + arg [-o] ==> ignore + arg [cmTC_d5d2a] ==> ignore + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtbegin_dynamic.o] ==> ignore + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--exclude-libs] ==> ignore + arg [libgcc.a] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libatomic.a] ==> ignore + arg [--build-id] ==> ignore + arg [--warn-shared-textrel] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libunwind.a] ==> ignore + arg [--no-undefined] ==> ignore + arg [-znoexecstack] ==> ignore + arg [--gc-sections] ==> ignore + arg [CMakeFiles/cmTC_d5d2a.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-Bstatic] ==> ignore + arg [-lc++] ==> lib [c++] + arg [-Bdynamic] ==> ignore + arg [-lm] ==> lib [m] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtend_android.o] ==> ignore + remove lib [gcc] + remove lib [gcc] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [c++;m;dl;c;dl] + implicit dirs: [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_b23a2" +[1/2] Building CXX object CMakeFiles/cmTC_b23a2.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_b23a2 + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_bb8bd" +[1/2] Building CXX object CMakeFiles/cmTC_bb8bd.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_bb8bd + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_34621" +[1/2] Building CXX object CMakeFiles/cmTC_34621.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_34621 + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/TargetDirectories.txt b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000000..e36ed6760c --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/edit_cache.dir +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/rebuild_cache.dir +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/hoko_blur.dir diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cmake.check_cache b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000000..3dccd73172 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/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/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.bin b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..cfa874367a90bfc04e7b896beb452cc93402e546 GIT binary patch literal 79416 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 L$S@TqiDWMTq7hTW literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.c b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.c new file mode 100644 index 0000000000..90a87b17ad --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx new file mode 100644 index 0000000000..a9b4791caf --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_aggregate_nsdmi) +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alias_templates) +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_attributes) +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_auto_type) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_binary_literals) +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_constexpr) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_contextual_conversions) +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_decltype) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_decltype_incomplete_return_types) +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_default_function_template_args) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_delegating_constructors) +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_deleted_functions) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_explicit_conversions) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_inheriting_constructors) +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_lambdas) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_init_captures) +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_local_type_template_args) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_noexcept) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_nonstatic_member_init) +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_nullptr) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_range_for) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_raw_string_literals) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_reference_qualified_functions) +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_relaxed_constexpr) +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_return_type_deduction) +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_rvalue_references) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_static_assert) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_strong_enums) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 199711L +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_thread_local) +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_trailing_return) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_unicode_literals) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_unrestricted_unions) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_user_literals) +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_variable_templates) +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_variadic_templates) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..181edbea74f5b424cf76c1bb69757e280b4bb89f GIT binary patch literal 60672 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 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..0fcf8a6ff4dd393a9d6ffa69f33ed51f77002d92 GIT binary patch literal 65064 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 NyCx>kS;dg`ZvZqkdoln3 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..ea96053c8004f734f7c69a6eba5e768b26dea09d GIT binary patch literal 66788 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 T3=9*rAYnLz33Sdoq#OYN16npj literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..6d1693e1eba6ef1b89209b16984fcc42a3f1b12f GIT binary patch literal 66920 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 Oh&dCOAmtS(Edl@^d_*Y# literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json new file mode 100644 index 0000000000..83d878af20 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json @@ -0,0 +1,59 @@ + +{ + "buildFiles" : + [ + "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt" + ], + "cleanCommands" : + [ + "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a --target clean" + ], + "cppFileExtensions" : [ "cpp" ], + "libraries" : + { + "hoko_blur-Debug-armeabi-v7a" : + { + "abi" : "armeabi-v7a", + "artifactName" : "hoko_blur", + "buildCommand" : "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a --target hoko_blur", + "buildType" : "debug", + "files" : + [ + + { + "flags" : " --target=armv7-none-linux-androideabi16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BlurUtil.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a" + }, + + { + "flags" : " --target=armv7-none-linux-androideabi16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/StackBlurFilter.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a" + }, + + { + "flags" : " --target=armv7-none-linux-androideabi16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/GaussianBlurFilter.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a" + }, + + { + "flags" : " --target=armv7-none-linux-androideabi16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BoxBlurFilter.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a" + } + ], + "output" : "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/armeabi-v7a/libhoko_blur.so", + "toolchain" : "5697535246732911383" + } + }, + "toolchains" : + { + "5697535246732911383" : + { + "cCompilerExecutable" : "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang", + "cppCompilerExecutable" : "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" + } + } +} diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_hoko_blur_armeabi-v7a.command.txt b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_hoko_blur_armeabi-v7a.command.txt new file mode 100644 index 0000000000..f87b26be86 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_hoko_blur_armeabi-v7a.command.txt @@ -0,0 +1,8 @@ +Executable : /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +arguments : +--build +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a +--target +hoko_blur +jvmArgs : + diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_hoko_blur_armeabi-v7a.stderr.txt b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_hoko_blur_armeabi-v7a.stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_hoko_blur_armeabi-v7a.stdout.txt b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_hoko_blur_armeabi-v7a.stdout.txt new file mode 100644 index 0000000000..964c94da09 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_hoko_blur_armeabi-v7a.stdout.txt @@ -0,0 +1 @@ +ninja: no work to do. diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_mini.json b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_mini.json new file mode 100644 index 0000000000..4a25d416c6 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_mini.json @@ -0,0 +1,16 @@ +{ + "buildFiles": [ + "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt" + ], + "cleanCommands": [ + "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a --target clean" + ], + "libraries": { + "hoko_blur-Debug-armeabi-v7a": { + "artifactName": "hoko_blur", + "buildCommand": "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a --target hoko_blur", + "abi": "armeabi-v7a", + "output": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/armeabi-v7a/libhoko_blur.so" + } + } +} \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_generate_cmake_ninja_json_armeabi-v7a.command.txt b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_generate_cmake_ninja_json_armeabi-v7a.command.txt new file mode 100644 index 0000000000..12a41f9cf9 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_generate_cmake_ninja_json_armeabi-v7a.command.txt @@ -0,0 +1,17 @@ +Executable : /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +arguments : +-H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni +-B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a +-DANDROID_ABI=armeabi-v7a +-DANDROID_PLATFORM=android-24 +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/armeabi-v7a +-DCMAKE_BUILD_TYPE=Debug +-DANDROID_NDK=/home/amit/Android/Sdk/ndk/20.1.5948944 +-DCMAKE_CXX_FLAGS=-std=c++11 -frtti -fexceptions +-DCMAKE_TOOLCHAIN_FILE=/home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja +-GAndroid Gradle - Ninja +-DANDROID_PLATFORM=android-13 +-DANDROID_TOOLCHAIN=clang +jvmArgs : + diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_generate_cmake_ninja_json_armeabi-v7a.stderr.txt b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_generate_cmake_ninja_json_armeabi-v7a.stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_generate_cmake_ninja_json_armeabi-v7a.stdout.txt b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_generate_cmake_ninja_json_armeabi-v7a.stdout.txt new file mode 100644 index 0000000000..e48d664e9f --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_generate_cmake_ninja_json_armeabi-v7a.stdout.txt @@ -0,0 +1,16 @@ +-- android-13 is unsupported. Using minimum supported version 16. +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Detecting C compile features +-- Detecting C compile features - done +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +-- Detecting CXX compiler ABI info +-- Detecting CXX compiler ABI info - done +-- Detecting CXX compile features +-- Detecting CXX compile features - done +-- Configuring done +-- Generating done +-- Build files have been written to: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build.ninja b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build.ninja new file mode 100644 index 0000000000..2afd21e4bd --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build.ninja @@ -0,0 +1,147 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.6 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Hoko_blur +# Configuration: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include rules.ninja + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a && /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 +build edit_cache: phony CMakeFiles/edit_cache.util + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a && /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake -H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni -B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 +build rebuild_cache: phony CMakeFiles/rebuild_cache.util +# ============================================================================= +# Object build statements for SHARED_LIBRARY target hoko_blur + +build CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BlurUtil.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BlurUtil.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir +build CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/StackBlurFilter.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/StackBlurFilter.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir +build CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/GaussianBlurFilter.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/GaussianBlurFilter.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir +build CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BoxBlurFilter.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BoxBlurFilter.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target hoko_blur + + +############################################# +# Link the shared library /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/armeabi-v7a/libhoko_blur.so + +build /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/armeabi-v7a/libhoko_blur.so: CXX_SHARED_LIBRARY_LINKER__hoko_blur CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o | /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/liblog.so /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/libjnigraphics.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info + LINK_FLAGS = -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -static-libstdc++ -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--exclude-libs,libunwind.a -Wl,--no-undefined -Qunused-arguments -Wl,-z,noexecstack + LINK_LIBRARIES = /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/liblog.so /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/libjnigraphics.so -latomic -lm + OBJECT_DIR = CMakeFiles/hoko_blur.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libhoko_blur.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/armeabi-v7a/libhoko_blur.so + TARGET_PDB = hoko_blur.so.dbg +# ============================================================================= +# Target aliases. + +build hoko_blur: phony /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/armeabi-v7a/libhoko_blur.so +build libhoko_blur.so: phony /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/armeabi-v7a/libhoko_blur.so +# ============================================================================= +# Folder targets. + +# ============================================================================= +# ============================================================================= +# Built-in targets + + +############################################# +# The main all target. + +build all: phony /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/armeabi-v7a/libhoko_blur.so + +############################################# +# Make the all target the default. + +default all + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompilerABI.c /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompilerABI.cpp /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCommonLanguageInclude.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompileFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompilerABI.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeFindBinUtils.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeGenericSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeLanguageInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeParseImplicitLinkInfo.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystem.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInitialize.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCompilerCommon.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/GNU.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Internal/FeatureTesting.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Android.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Linux.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/UnixPaths.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/platforms.cmake /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt CMakeCache.txt CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx + pool = console + +############################################# +# A missing CMake input file is not an error. + +build /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompilerABI.c /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompilerABI.cpp /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCommonLanguageInclude.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompileFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompilerABI.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeFindBinUtils.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeGenericSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeLanguageInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeParseImplicitLinkInfo.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystem.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInitialize.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCompilerCommon.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/GNU.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Internal/FeatureTesting.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Android.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Linux.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/UnixPaths.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/platforms.cmake /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt CMakeCache.txt CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx: phony + +############################################# +# Clean all the built files. + +build clean: CLEAN + +############################################# +# Print all primary targets available. + +build help: HELP diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_command.txt b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_command.txt new file mode 100644 index 0000000000..12a41f9cf9 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_command.txt @@ -0,0 +1,17 @@ +Executable : /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +arguments : +-H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni +-B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a +-DANDROID_ABI=armeabi-v7a +-DANDROID_PLATFORM=android-24 +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/armeabi-v7a +-DCMAKE_BUILD_TYPE=Debug +-DANDROID_NDK=/home/amit/Android/Sdk/ndk/20.1.5948944 +-DCMAKE_CXX_FLAGS=-std=c++11 -frtti -fexceptions +-DCMAKE_TOOLCHAIN_FILE=/home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja +-GAndroid Gradle - Ninja +-DANDROID_PLATFORM=android-13 +-DANDROID_TOOLCHAIN=clang +jvmArgs : + diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_model.json b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_model.json new file mode 100644 index 0000000000..0bd27c5ebc --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_model.json @@ -0,0 +1,74 @@ +{ + "variant": { + "module": { + "rootBuildGradleFolder": "/home/amit/projects/BlissLauncher", + "sdkFolder": "/home/amit/Android/Sdk", + "isNativeCompilerSettingsCacheEnabled": false, + "isBuildOnlyTargetAbiEnabled": true, + "splitsAbiFilterSet": [], + "intermediatesFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates", + "gradleModulePathName": ":hoko-blur", + "moduleRootFolder": "/home/amit/projects/BlissLauncher/hoko-blur", + "makeFile": "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt", + "buildSystem": "CMAKE", + "compilerSettingsCacheFolder": "/home/amit/projects/BlissLauncher/.cxx", + "cxxFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx", + "ndkFolder": "/home/amit/Android/Sdk/ndk/20.1.5948944", + "ndkVersion": "20.1.5948944", + "ndkSupportedAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkDefaultAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "cmakeToolchainFile": "." + }, + "buildSystemArgumentList": [ + "-DANDROID_PLATFORM\u003dandroid-13", + "-DANDROID_TOOLCHAIN\u003dclang" + ], + "cFlagList": [], + "cppFlagsList": [ + "-std\u003dc++11 -frtti -fexceptions" + ], + "variantName": "debug", + "soFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/lib", + "objFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj", + "jsonFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug", + "gradleBuildOutputFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug", + "isDebuggableEnabled": true, + "validAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86" + ], + "buildTargetSet": [] + }, + "abi": "ARMEABI_V7A", + "abiPlatformVersion": 24, + "cxxBuildFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a", + "jsonFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json", + "gradleBuildOutputFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/armeabi-v7a", + "objFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/armeabi-v7a", + "buildCommandFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_command.txt", + "buildOutputFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_output.txt", + "modelOutputFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_model.json", + "cmake": { + "cmakeListsWrapperFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/armeabi-v7a/CMakeLists.txt", + "toolchainWrapperFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/armeabi-v7a/android_gradle_build.toolchain.cmake", + "buildGenerationStateFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/armeabi-v7a/build_generation_state.json", + "cacheKeyFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/armeabi-v7a/compiler_cache_key.json", + "compilerCacheUseFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/armeabi-v7a/compiler_cache_use.json", + "compilerCacheWriteFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/armeabi-v7a/compiler_cache_write.json", + "toolchainSettingsFromCacheFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/armeabi-v7a/compiler_settings_cache.cmake", + "cmakeWrappingBaseFolder": "." + }, + "jsonGenerationLoggingRecordFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/json_generation_record.json", + "compileCommandsJsonFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/compile_commands.json" +} \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_output.txt b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_output.txt new file mode 100644 index 0000000000..9119fb4983 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/build_output.txt @@ -0,0 +1,16 @@ +-- android-13 is unsupported. Using minimum supported version 16. +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Detecting C compile features +-- Detecting C compile features - done +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +-- Detecting CXX compiler ABI info +-- Detecting CXX compiler ABI info - done +-- Detecting CXX compile features +-- Detecting CXX compile features - done +-- Configuring done +-- Generating done +-- Build files have been written to: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/cmake_install.cmake b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/cmake_install.cmake new file mode 100644 index 0000000000..fd8fa2d330 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/cmake_install.cmake @@ -0,0 +1,44 @@ +# Install script for directory: /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni + +# 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 "1") +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 "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/json_generation_record.json b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/json_generation_record.json new file mode 100644 index 0000000000..6795dbeeaf --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/json_generation_record.json @@ -0,0 +1,26 @@ +[ + { + "level": "INFO", + "message": "Start JSON generation. Platform version: 24 min SDK version: armeabi-v7a" + }, + { + "level": "INFO", + "message": "No CMake version was specified in build.gradle. Choosing a suitable version." + }, + { + "level": "INFO", + "message": "Trying to locate CMake in local SDK repository." + }, + { + "level": "INFO", + "message": "- CMake found in SDK at \u0027/home/amit/Android/Sdk/cmake/3.6.4111459\u0027 had version \u00273.6.0\u0027" + }, + { + "level": "INFO", + "message": "JSON \u0027/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json\u0027 was up-to-date" + }, + { + "level": "INFO", + "message": "JSON generation completed without problems" + } +] \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/debug/armeabi-v7a/rules.ninja b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/rules.ninja new file mode 100644 index 0000000000..42e0820883 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/armeabi-v7a/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.6 + +# 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: Hoko_blur +# Configuration: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for compiling CXX files. + +rule CXX_COMPILER__hoko_blur + depfile = $DEP_FILE + deps = gcc + command = /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $IN_ABS + description = Building CXX object $out + + +############################################# +# Rule for linking CXX shared library. + +rule CXX_SHARED_LIBRARY_LINKER__hoko_blur + command = $PRE_LINK && /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake -H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni -B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/armeabi-v7a + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja -t clean + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja -t targets + description = All primary targets available: + diff --git a/hoko-blur/.cxx/cmake/debug/x86/.ninja_deps b/hoko-blur/.cxx/cmake/debug/x86/.ninja_deps new file mode 100644 index 0000000000000000000000000000000000000000..0525034a4429efd650fbff88ccedb127ebbba8e0 GIT binary patch literal 10400 zcmY#Z$ji*jN=!*DDCS~jU|=v{U|?|eP0UVp%gjkF*3Zb#&W}&ZDJ{}V$t==$%CB(B zDJ^o#%qdAN(n~HV(98e-|Ns901_lQGjQreG{lwhN68(ar{H)aEl45FGxPMb@-i{aWMKIB|Ns9GO3cj6OU@}xNkua|Zm%*-p+&&esv)h{SYO)AaI zDbdf#%qy+Xt*|hQH#5;Mt}HIf&o9w0EiTfBS)7%Zsh7d<=l}ozB~-UBCo{>+L_awv zF)v-;LeD_Y9BylINlIc-x?aZb|NsA2P~Bc^{!G@^)-N;EFD^;R%q!8$U|?YQMQ^*~ z~&0 zl3JFToEo24kQonlM|@^pPG%k`5il??e4$&~D=5h*N=;1B%V79SleCAod;w?kPjvGu zqG0(*xAX>%@ABk~#G?3|%-qZpNPhc3?{clUBqb#^4V>2B(?6cUR=@lI|9=bB^BC^* z6(0}rbbM}NMSNmTW_n&cxKepb@34=L&nwNzDJUsoV0c55u*X)uBh{t(dKs_jn#c0N z>FgEV{0geeN-7JWW#>z}*$ZyC>BDS(L6h{2Ep9W-EX;Jlmg~Z*)5PLjm_we^t!zsy z&ecs%%}XuHOomy`z`*cqKWIg5ixY6N)Gx>{&a8-sot&RrkeQQO1oQd> zy45w1aEI9sDuC|~bUr{!1o!^`|385)`2a`0L~>8Ou@NYU814>8-b8YUUIxP*x}{N2 znV=7C@WWCl1H*0l+FzWSnhok?7ndaFfm_43=$1#o{x2>mDorklPs_|n)yud^H@gw- zv7F2#aN4^;^D;3fKRGc6c{~Sf^>uo-1;I8lFkGXXoryUhUxNbpD$Ty5kHIPjAFBGB7YOF)%QI<|NaTjBF+Epph+0xZb!hZ-cGlE1I$JShHW(QE4H=^q~8Fuc`M!8 z>)`%BWKa)gIRgX37J8>I&~STvNl{{EN%3a7g*h~BCqqWuH__W(=rWRx^tKlg&kP&r zmd2pr93Nkrmy((mpPQImlwZuS{{R2~8jK7Lj?ngi6KK8NFm4aHFfcHF)%Q= sGcYiCFfcH9GB7ZBF)%QAGcYiK+N{0|3=Dn@3=IAZ3=E*Pgvf0O0CC!sn*aa+ literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/x86/.ninja_log b/hoko-blur/.cxx/cmake/debug/x86/.ninja_log new file mode 100644 index 0000000000..bce8788754 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/.ninja_log @@ -0,0 +1,6 @@ +# ninja log v5 +1 369 0 CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o 53075e0d5747d1a0 +1 374 0 CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o bdc2af4a90da3026 +1 410 0 CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o d222688cbe8bc796 +1 441 0 CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o 3fb046f84b6b413e +441 670 0 /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/x86/libhoko_blur.so e598571edaaba54b diff --git a/hoko-blur/.cxx/cmake/debug/x86/CMakeCache.txt b/hoko-blur/.cxx/cmake/debug/x86/CMakeCache.txt new file mode 100644 index 0000000000..8e22f7ea50 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/CMakeCache.txt @@ -0,0 +1,331 @@ +# This is the CMakeCache file. +# For build in directory: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 +# It was generated by CMake: /home/amit/Android/Sdk/cmake/3.6.4111459/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=/home/amit/Android/Sdk/ndk/20.1.5948944 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-13 + +//No help, variable specified on the command line. +ANDROID_TOOLCHAIN:UNINITIALIZED=clang + +//Archiver +CMAKE_AR:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-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(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING=Debug + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING=-std=c++11 -frtti -fexceptions + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//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 compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//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 release minsize 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 Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//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=/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/x86 + +//Path to a program. +CMAKE_LINKER:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ld + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-objdump + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Hoko_blur + +//Ranlib +CMAKE_RANLIB:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ranlib + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info 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. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-strip + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/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 +Hoko_blur_BINARY_DIR:STATIC=/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 + +//Value Computed by CMake +Hoko_blur_SOURCE_DIR:STATIC=/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni + +//Path to a library. +graphics-lib:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/libjnigraphics.so + +//Dependencies for the target +hoko_blur_LIB_DEPENDS:STATIC=general;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/liblog.so;general;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/libjnigraphics.so; + +//Path to a library. +log-lib:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/liblog.so + + +######################## +# INTERNAL cache entries +######################## + +//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=/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/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=6 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=0 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ctest +//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_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_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 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL=Android Gradle +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//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=/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//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 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6 +//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 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 + diff --git a/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake new file mode 100644 index 0000000000..6c93bca2a1 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake @@ -0,0 +1,67 @@ +set(CMAKE_C_COMPILER "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "8.0") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_static_assert") + +set(CMAKE_C_PLATFORM_ID "") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + +set(CMAKE_AR "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ar") +set(CMAKE_RANLIB "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ranlib") +set(CMAKE_LINKER "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ld") +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_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +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_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_LINK_LIBRARIES "dl;c;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/i686-linux-android/lib;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake new file mode 100644 index 0000000000..3194d22e44 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake @@ -0,0 +1,68 @@ +set(CMAKE_CXX_COMPILER "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "8.0") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;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_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_CXX98_COMPILE_FEATURES "cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "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_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_CXX_PLATFORM_ID "") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + +set(CMAKE_AR "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ar") +set(CMAKE_RANLIB "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ranlib") +set(CMAKE_LINKER "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ld") +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_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +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_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_LINK_LIBRARIES "c++;m;dl;c;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/i686-linux-android/lib;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_C.bin b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..19e8b4da6efddcdd4bb0b0c5c7267c8ad657ab52 GIT binary patch literal 8164 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

pz6`hUj}jy6EA}d)L*caw-$%`EnxEz`4?vX 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 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake b/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake new file mode 100644 index 0000000000..3f32743439 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.0.0-36-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.0.0-36-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + +include("/home/amit/Android/Sdk/ndk/20.1.5948944/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/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeOutput.log b/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000000..8a9798767b --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeOutput.log @@ -0,0 +1,447 @@ +The target system is: Android - 1 - aarch64 +The host system is: Linux - 5.0.0-36-generic - x86_64 +Determining if the C compiler works passed with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_7cac5" +[1/2] Building C object CMakeFiles/cmTC_7cac5.dir/testCCompiler.c.o +[2/2] Linking C executable cmTC_7cac5 + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_3731c" +[1/2] Building C object CMakeFiles/cmTC_3731c.dir/CMakeCCompilerABI.c.o +[2/2] Linking C executable cmTC_3731c +Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn) +Target: aarch64-none-linux-android21 +Thread model: posix +InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x +Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x +Candidate multilib: .;@m64 +Selected multilib: .;@m64 + "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -EL --fix-cortex-a53-843419 -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m aarch64linux -dynamic-linker /system/bin/linker64 -o cmTC_3731c /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_3731c.dir/CMakeCCompilerABI.c.o -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtend_android.o + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(aarch64-linux-android-ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_3731c"] + ignore line: [[1/2] Building C object CMakeFiles/cmTC_3731c.dir/CMakeCCompilerABI.c.o] + ignore line: [[2/2] Linking C executable cmTC_3731c] + ignore line: [Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn)] + ignore line: [Target: aarch64-none-linux-android21] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + ignore line: [Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + ignore line: [Candidate multilib: .] + ignore line: [@m64] + ignore line: [Selected multilib: .] + ignore line: [@m64] + link line: [ "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -EL --fix-cortex-a53-843419 -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m aarch64linux -dynamic-linker /system/bin/linker64 -o cmTC_3731c /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_3731c.dir/CMakeCCompilerABI.c.o -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtend_android.o] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld] ==> ignore + arg [--sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-pie] ==> ignore + arg [-EL] ==> ignore + arg [--fix-cortex-a53-843419] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--hash-style=both] ==> ignore + arg [--enable-new-dtags] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [aarch64linux] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker64] ==> ignore + arg [-o] ==> ignore + arg [cmTC_3731c] ==> ignore + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_dynamic.o] ==> ignore + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--exclude-libs] ==> ignore + arg [libgcc.a] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libatomic.a] ==> ignore + arg [--build-id] ==> ignore + arg [--warn-shared-textrel] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--no-undefined] ==> ignore + arg [-znoexecstack] ==> ignore + arg [--gc-sections] ==> ignore + arg [CMakeFiles/cmTC_3731c.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtend_android.o] ==> ignore + remove lib [gcc] + remove lib [gcc] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib64] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [dl;c;dl] + implicit dirs: [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib64;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_89759" +[1/2] Building C object CMakeFiles/cmTC_89759.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_89759 + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_db919" +[1/2] Building C object CMakeFiles/cmTC_db919.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_db919 + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_e6469" +[1/2] Building C object CMakeFiles/cmTC_e6469.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_e6469 + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_8b06c" +[1/2] Building CXX object CMakeFiles/cmTC_8b06c.dir/testCXXCompiler.cxx.o +[2/2] Linking CXX executable cmTC_8b06c + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_0f5b8" +[1/2] Building CXX object CMakeFiles/cmTC_0f5b8.dir/CMakeCXXCompilerABI.cpp.o +[2/2] Linking CXX executable cmTC_0f5b8 +Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn) +Target: aarch64-none-linux-android21 +Thread model: posix +InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x +Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x +Candidate multilib: .;@m64 +Selected multilib: .;@m64 + "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -EL --fix-cortex-a53-843419 -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m aarch64linux -dynamic-linker /system/bin/linker64 -o cmTC_0f5b8 /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_0f5b8.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lc++ -Bdynamic -lm -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtend_android.o + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(aarch64-linux-android-ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_0f5b8"] + ignore line: [[1/2] Building CXX object CMakeFiles/cmTC_0f5b8.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [[2/2] Linking CXX executable cmTC_0f5b8] + ignore line: [Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn)] + ignore line: [Target: aarch64-none-linux-android21] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + ignore line: [Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + ignore line: [Candidate multilib: .] + ignore line: [@m64] + ignore line: [Selected multilib: .] + ignore line: [@m64] + link line: [ "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -EL --fix-cortex-a53-843419 -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m aarch64linux -dynamic-linker /system/bin/linker64 -o cmTC_0f5b8 /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_0f5b8.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lc++ -Bdynamic -lm -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtend_android.o] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld] ==> ignore + arg [--sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-pie] ==> ignore + arg [-EL] ==> ignore + arg [--fix-cortex-a53-843419] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--hash-style=both] ==> ignore + arg [--enable-new-dtags] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [aarch64linux] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker64] ==> ignore + arg [-o] ==> ignore + arg [cmTC_0f5b8] ==> ignore + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_dynamic.o] ==> ignore + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--exclude-libs] ==> ignore + arg [libgcc.a] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libatomic.a] ==> ignore + arg [--build-id] ==> ignore + arg [--warn-shared-textrel] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--no-undefined] ==> ignore + arg [-znoexecstack] ==> ignore + arg [--gc-sections] ==> ignore + arg [CMakeFiles/cmTC_0f5b8.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-Bstatic] ==> ignore + arg [-lc++] ==> lib [c++] + arg [-Bdynamic] ==> ignore + arg [-lm] ==> lib [m] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/crtend_android.o] ==> ignore + remove lib [gcc] + remove lib [gcc] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib/../lib64] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib64] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [c++;m;dl;c;dl] + implicit dirs: [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/aarch64;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib64;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_4f56d" +[1/2] Building CXX object CMakeFiles/cmTC_4f56d.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_4f56d + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_4791f" +[1/2] Building CXX object CMakeFiles/cmTC_4791f.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_4791f + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_db377" +[1/2] Building CXX object CMakeFiles/cmTC_db377.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_db377 + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/TargetDirectories.txt b/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000000..115b68b582 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/edit_cache.dir +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/rebuild_cache.dir +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/hoko_blur.dir diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/cmake.check_cache b/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000000..3dccd73172 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/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/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.bin b/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..32033d4125be5a1dcf52cea8272dfb15fb984ef6 GIT binary patch literal 14256 zcmb<-^>JfjWMqH=W`^wyAl?O5h=>D(V%VS$WiT)>I51c+a56YBC@{z}urV+&fRw`2 zq0>J=hA}WOz-SJrG0Y4M3@i)`3>Hif0d!gvBFq4zp~isS2C@$-jX}-eg9yQB2CxnY z336+KEJQv*7GffdUI2B+3MdWH!N36Gg7i&*>YD)72cs203K$p|U^L8sAisfd08}2G z-UD$41B?c#1qlT_ElB~fL!kaZr$s=D7#J8}G)OH-DDY`X3do%xHZfQLswfC*AE9u8 zg%2du7#Q@6D~n4~bM=!l^Yn8v^RiQm%uGN=g8bjY00}+Eyp*E+%oK1O78w~Nf#k`> zrj{lamL^~;$T9*HPM|OYr8{@OP=@UaO+MQfElSG>&f+}qOf<`gr??bkFi4&g#DJzx z5Fg3~Qy~Ar!kHZ`0!jZMb)a+!3LlWX0wWJg0}F!!NDQWKR?5HYtW5FYS@pAOF0a%n zf@;S}F*EQo!15uoB4!3L1_lL?O$bpb1_lNp1Q*Uy!y#_Lz`!8LAjkkq{~&*XGnlX$xKR) z&&}%EMdq^%*W`aGp+1kVA#O%)%|BD1H%T* zzwSS~7#KEq{dE7yz?eQyK~}==0ds@xD{h9LO$-bhoIbe!e9X)+@gcMPs=v()6QBP7 zKiz?WVG9F;{Ivtj@z*#Q7$$HuN=$5GV7TDK08+=W>H#yys{8-{i~o0KxCoa2C^_*z zKf}%k+zdM(GBf;q!0iB{wG?X{CUY<{b~7+KSpIirmP^niD@m;=DNW3YPtMOPOD!tS%+JGOL`rIM4tCpNGVzI}CHa^Z zz@;_5uaF;j$3_dN<2&lUPZb2 zWvK)bKuT&3D7|FnrGo;cxTL5wxg;N3N&zV>Az*Q4dS*#{acV(gQ6hFjQu9i4En{WoWuz8mmJp7S z%)Fe;ywv!-#N5>4g2ZHOxfiD;5DBnTl*A|IrRSu^Clw_oXQ!56$>v36i8-a90tV_zEJ}(qt5WmRpaF|% zPjLx2+!Kq7Q;V>~OmRsOC{{sv7S(J+P)!4?GY}~Ql0g?cnU-Ia3r<7eN-q&qs$yDLnpczxivMI# ziB_72y#y*PPA$S?S6O0FW@1uKDm(zNxEQP^1(dcElZ*24DS!oMF&C)qFU@QXYIlKJ zSYN*X|F478Utz2YVqmP1W0dBR2e)@XZE_g~28ILQ|NjTKDP8zLTETLo#ApbNhQMeD zjE2By2#kinXb6mkz-S1JhQMeDjE2By2n>}F_zwjz_d>bnpB(Gk2etvpRYH@yP zQF5wYa(=FUNq&A#azlBsE$QHn`wQd)|!X;PY*iE)aNc}h}pqG3{!k&%U^ zskwoHg_)tbCP`-JkBkfqj8hrs zFfcH1GEL<8g~Da{58*Bbr5v_zj0_B{EL@062STsPF8Xn4RjDnUh+~z>t=j2pZv!FG(#f zDF*3+tm)unf(0n^6lO+NGcGSyeKsZyAtnw6M#j-}Z4OS?G>8y=%=n;%E#MRol3T!# zoRL_>5D#4d5bPP{8XpoF;0jt95anY5bxSd1^+0A`2}5F0dNPP817#h&n3;hQzWxYV zAu|IL18ltxsyH*l3+Q?tRB;vtSpA49&dLC*CsD=O;PoS_I6DKZ9z_-BV1U&xsN$Rq zuzCqqoQnZg|DlR=!|O>@aUKR(y@4u@YyAly1FYafRnN}=Td#yFF2IlhUC)Fnj#z(! zDvnrBf+~(!mx3xT!T?*3g(@z}0Bc8}ies*y0m(Bnz*-X^9s)Bnz*-9kF%XNH0oJ+# z@er7q0oJNQh=Ewl46xQ0h=;(;46s%gLJU+1u`qmuw-aG9koFyB`UI`>0j*X;tY3rZ zFb7ji3>j$Y7F>ZLrSlnJbqow)V48^`1x-Dq{ltWk{xhNKW6;zWgDVM4_t$~dW5#2ftTS1wEg4(R>!~qs%x=@ zKg9i*=^x^L%=m@4A2Xdm+>e>AAnwOZ54*tb!t~dEusCM^Isz8QOoy;=fK{DfWef}q zCqdOY1Hxa|pbhD3IN}kK4h0!9pzTbUIgs!XVyHk9hlGzXLkF5TNFTOv{sMN-$N%X0 z`Y%WW17vzz z3=Bd{ybKD^1|JX90w+f7>*yju>XFv(!TJ{=Q1j8(?WG^(Vkg2mc z#2NIHN;7j(lJZOROL7bJlZ#4{iW2iubWM#63@nWG@)=Z8^b8pCQnKU0>f-ZCL8~sn z0?-Z$LtcJKYCN=C0$KF}5lTrcNrbRc^HLxT(BcyYkR7S%nR$B2Aj1togb|1^1`#G8 z!jwU!LeGF9zPKc@s3ab|P7&JfKx&h!r0AJ}6q|zx3x;^)#tDX}Qu9)DQxeV0lhX9^ z8RA_c{TzKgof+ce-Tgx2T|MI6f*gHa<2_u07~M967y1WQj6ltixLY8Qb8@H0E`usNyWtw$1}vorxfQy^)ST8gBBfOSz-xS zA0N*EU7Z=93J$;cc$DRr@$n#~FjL?QI~^Q+KSLQ-U51H-Om>Yj?wF(7I-j zc4#rj04uj(=782WfBXMGAEqDHK8MkuzBxAiATbaQfsSFp^uxxvVDt@;B4`+ahQMI< z!)kia@Bm00rXSYchtaTcGN>_-o-T~Tz`y`1XF+37F#WK80gQ%?3&Q*lQwO6985kHq zV_Gmitp5O`VdIIQI0D5z%>6JYG=SR!pq3^?1lG@h(U5i`19)EuNCiwk%>P|b{Z1fB zq;Wgg_#JGV59EH(*dV(8esH@0VLq(i0;6I3PoTy#z{W9Q^b|Dxu=VvYdJRk?l!m1n zD3@UtR6i{IVErH%4Qn^S)Puqh#s<-g(DcLlOE4NXz6nwb!szyIK+_NFSHWml_<{6- zFf9B)Y!C*uBSB#SN`oLiY+Mkw{{tik5{F@!ei#jECxW_iF#WJ`!~*F47()85GB7ak zGa%N)!^R^Uh}8cOG^~cCAJ#sE?azVj!vUpVkRM>~hPmq%H2h%hhxHFPK$fF1fX47Z z`d}EQA4b1tU;vjXF#Yg$7Bu6))S>H#@geP61_tzaVu0yKOE54lj0UxTVQiS0AesZx zAZJ(y;vivkwVdE~GLix)a~o7YXjl&_1g6mSi{sF5tOQohuoObUNp$_nQ2prszX8?H z0?SxX6JYvbv>sGHR2oj*fmR$abubBZz93TCfvEw}1$rQofx#9{0~!}x9-}!CtnmTV o{teKC2TD$k(6j= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.cxx b/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.cxx new file mode 100644 index 0000000000..a9b4791caf --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_aggregate_nsdmi) +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alias_templates) +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_attributes) +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_auto_type) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_binary_literals) +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_constexpr) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_contextual_conversions) +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_decltype) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_decltype_incomplete_return_types) +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_default_function_template_args) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_delegating_constructors) +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_deleted_functions) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_explicit_conversions) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_inheriting_constructors) +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_lambdas) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_init_captures) +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_local_type_template_args) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_noexcept) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_nonstatic_member_init) +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_nullptr) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_range_for) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_raw_string_literals) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_reference_qualified_functions) +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_relaxed_constexpr) +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_return_type_deduction) +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_rvalue_references) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_static_assert) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_strong_enums) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 199711L +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_thread_local) +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_trailing_return) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_unicode_literals) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_unrestricted_unions) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_user_literals) +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_variable_templates) +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_variadic_templates) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o b/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..131aec32d3344194157ef1790e987c7e12dd6328 GIT binary patch literal 66960 zcmb<-^>JfjWMqH=MuzPS2p&w7fk6OC)B!B)z#zuJ$RN+al$U@;?KGAZ#CD-zs*b&qc2!r%@B9^`9huHCzCM4 zmT$~Vs~#O@nD~%cY}Hq0cC8=GY+65=S+#yKvuJ&0W?uD$nPJucdghh?of&pAFfdF> z5d2~OXfeaY2h1X?Kzja*GyDXJFA(@)-ofPX6Cy6W>JhX2Dvq~KKR+`w{A6IXzb4Pl zQ23phVU;!?L&!_xhMnBZQrzpAB)MOSJN(qEcbNR3)?spDt;6KgtPB(FSs6b1)H_W6 zaLV%ZbN2aC^^6R!KL|7Y{NTheQQwenHrtiHS-c>5eukd{_0^LF>+2@_bMkkC?6|?e zcltB~PxntphKaAa8GgQIpD)G#xpvYEX8BbL&lvI#G4gajX68Gs^0NA}>esrnE6*_Gjf2{ z{%7ER4Kn9Bv*fB|W`+=E1_luj8>Hq?fBo7y$_yXxF$;9Nuo&d0vKZvMg&6p!hZy)j zn$Dj8cshH2i;RNbQW*umV={_<&t(+-oMe{xCCe=JbCOx+mn^f~?@^Ea+UE=`-3$Nz z4|&b*@Kc_d|1|>>Lr6LUcejlp_w41q?6aS9v3Cb^%5?u>aM+p6$}sUcgJ3r(eCN&Q z5SkY+U_4J=z_^ZyVP`QDYxnDa|3i9M876YDGEAJ$$oSe)m|-IK_x~Y~I2Kz4ig!?) zKV*i)`y*!YRUEv|KOZy8Yk}e%l+IqNJN%Sq|Lj4Uio%?%7J%nZ#n zNisVprz}^&IN8|JI4#vY(LB}AILRO_DbXY`+1xbIz%Vh<%)&UuJkd1C&@eegQ$Yjn zJs+PiUx;6d%knfC^fU5vQ}q*bGfVUfit@8klS_*AopLgZi+vJH^O7@Ci}W+{v-5S6 za!QNzi;I%=b3q=<%FEPu$|)@hEy>K$OD-rN$rQchiVFSY+{Elu{i4*I)WqUc{lubN zGZWo1i$sRfyyDFCywnth%)Al?FF#Muyt2fc%#@(iw2;bzRFH^IesW?C65l;1KM6%3 zJT);JRWK_*3FI-Drs9$mhLqIgoRZ3dRE@mSoScG^B25M;Bff+otu!yWBr`v+n4u`O zIJKxOHN^nVGK8~?;4EVX_tcUwNGf3fxjQ~SGq1$hD82;51JhX`VJ|;V*Ss*EfS3%TvXUxGQW>&}GpkY=+%of0 zAjY~C<>v;arsbq2m!zinrj}&nr!d54<$@WWE({13ibA){)EtnyG!P9^24jTeqZuO3Y1V2*@u$;`ybP!xImKOKMJPNh&%YtU4$)jlr`xI59WX zADp-t{8G!|60Uj0rA4V=u5)5RVsd6lC4*y5PJS{%EjlZVAwIsiBr!RgAwE96D83}W zfFVA<48}+=iqB6=D~1TcSc&mDnZ+dx@$pHenK>nydGTdX5g6^4S`M+sks+%rF{d;Y z6de!|NILN>_RK3TNz6-5^-lxIL6VB63xjiFP7XvNLUc-18OkLyv)23uyHUt3nBqB4oNx0JR|{#fu4CKP~$-A;XH_HI2WSUCqFM8syHV< zFCAP2f{PL}6G(;!(^()na9AVMLySZ4A?CT|hvY<4`1Y~)L5y&DCGs5ySVdW1<3xW&LfZ#)v`{n1AWfql`CSoQ&>{1Y8 zu*;zviIVET0f^9tB8P4$iX?`q@RW&eBwPZ+Jh%+HVTk02W*9;O-7tg{_pc{uIg>D{lB1SV1 zSqj}mWI1#r5y>3QK!gOkaR?blP{9nY96en?Oh~Z|765Ufi4(!EEJ=lPK#2p+0Y@#I z=b2XmXM+M4&H)DvoCon1gd3b%f^2zkY6*(vAU@pk;M5X?<-w^XNR|humcT6!PAx%L z9-LZ&WO;CE39{wxsU^WBi6xoIkP;GFM?r)ju7XH_Ll{#S626$?kf?%)Lw$o`4vILk zK`0U^Cc$$!l5?Ekf+%LdMUf2vg&l@F5Q4}CAViT30Eah*2}q*IMj#0zn*qK(a4H0Fq+C!k|nH5rifubWwPof@c9xl%uHvMWf&v;% z5jfz`#2~={5d`I3aK1x!GF%YF$p}%nli@-LC&Pu1oD3I(I~gv5a57v7$;ogrWGDNj zmIs#?bJI$-@k2*({(2!pwsAa4{gOlcqklqc%258ga&UhDB?lIH-;cQG>}z-6E=oYm~W9) zf)Y1|LWGZyl_GfnE(}d+$Z?Dz2a8g42~3wmO~c}Ps0@Y=pyHUmfJ$KT2~-A~Z_vU% zC^bDZA3T5n4|#+T-1P_{gu4-9Fc%|4;BG|-AzXp-OxJWC*yp}7v)7D6)~!*%d>5wb#%p~WSsMSh7TnPsWPpm8z?6I%6!<`t!;XCkZc z&Ckm$$uDxvD@iS4fN?4^OF&88E3qsw%$Fe^N<%4l*$J`?5;Ks3GBm^uArw%QnVSi6 z1lW1bMVTd;$%#3zk`;$6+-P+55DVa8Tb&9b4F@%HfVIl zC9^0sxdfD$oJ!NuQj0)7g^GdsjwvZcsm0*Djw}oxz=4;%uyI5$KTk*?dx8QnEipNj zAwJ5_JRUO6XJ~*J6?82_kugLX0(1@VP7bhu75D+(iJ8bsE#YH&Aa%$xhL)fKG_-L! zSAc_FWeQD@mbK3NfbAjf`x~tJmAko=i?T|hRDeeXrm&n>k zcQ}R-B)S}&NDyOU#3gHREFm6czYDN>O(2LjliLY-6RxG zVKoX@EsD=n6rW->6>G(cZX`-oi5zEGjYRb`xSmA#8O10HJdMv-a(xX>oJdZ^S~nBn zWpHxCW)21Z#c3v$Jd3DaNsM1Khat?No@WtelIvMCMEPuEI=}d0`KBBlwALU z8xM#S2yYUQ=v%Z50XK#Mzv42IT%V$uhiFQW=vA~7f-r{yzv48LT+gBzh|~lj(YI(R z4#^-2yo=jVa{Y^DB68D(L=U6YyvQa|;A1?dlIvx(^o(frkmzBwq=GPq0`KB9lT6Qo zheW}nc?3o%5aT0Y)yP4C82m#S{4hn#9uTX=2&4rzQ%QssAoZY{iCFW&L!zKze_}O& z25?{#phUU{RBRDzJjgxZj8CivP%J<)4$(T`^N@ISppOfhBBoaG=t3FlH8cY0!5?>t zDCq;Ffk5PyplC3LP1@jbQ!$DTL!^Z**rN}1L>J^F0`ZrFVgblWgd#8vMTZG|vIvha zQc$#*g9h@!6aJ8%CjOjiWCR+ufGl4??I#h@Yz8-4F!ho;3TuSJ9Fm4)kqtrVvLKD5 z;_l~x3vq}~P&AY56HM<|l9uQ4$KHGheWZq&BC1>9!*@r~M`N9e*I;i#>8OSoMG zVjQ(;Zw}XnH_B1l_Xro_k8{*UKEj0rA|0irZ)5;>A)#1DY3_rTNK_ zrH05s)~tg2G|=_5=!+R3>Oe73jHE08Eux`||8OYwMvW@aQWl8H&=5C_#WIjW0<>}$ zz7!Y9Vk|uxs8ak+G%`eSB5d(4lF8@`hCqE}@JcsW7@5OX_M!w4e2EEIt!pNH1qZIo z1YaNm(EwTI>l$Ea3|lD%7DtINa1MlIUa+JqE=}0&G&BXR07hEkh_>zq6d#}r3NahS zW)(A8T0>6Nbg1SB$HT8naRfPW$x(t!lN@LN22o@AApdE=|`_Z(3D^1X#5m*u$g&@ZnA+MxH z)no{&DBz)pu*Lwft{PPX*e{5%Md&a@T4#->1>`WKAV=siLSA-_rU^7;1}TrwyS(Z~d*8@4bPDHKs63w5a_Tpz(0LoFwbOriFHYZP>UqDEUWs!NTb zItj#GCaNx&{|H844yrzwJBf(JG*q2tP_mHCTb!8H<{r1 z4Xz700y8rM(AosisNI=#C&uy8R0jRYMDC;014z33!+A=c((3%78;4N&Z)*$7! z%*+6kKmhv%9$j!tkaJsRW&m0{z#Y094%HTv+?JUcfYu6dhi#fe)rFedGBX2E8Uf&n zgUC4YMyt}HIYkwvu#HJ-fD zA_{X6K4d{LXwx;=oXpGsZ?u?#?OO!PBfAZ}+Zrqi(uEdP@S$0-0=PDesPaaMD??L| zN~DGSNc}KxLsR&YbV%nK)pO<;y8sZHQCdt!u>Am_b?xBB599z16h($GMHQJPIMjeL z7i9B*Ye0ZGY&!vR!wAvF1bHhz4{Q*mjfs&}QJQ?%l%p)=HUb$PfORth*w^6gSExmf zktMX8BdDzmEnva@NKgwCwo?JgA82-KZ1&Tt*77K=wjLc#Na7;2}7CYw`R5GOIq~;bg3D<`yu3(qDXXer`PI z7@K&|F*fm~C7C(#PMIaSi3OkoY~qVj3vv>ZQz0S@nGCs^d12twGIA3uAdJ+!G6v9T zF$`HrU~LRp@tJwxe9Mp(U%`+SU&)XapOTtWk{AwScrYa87I@~R2}4>=VtO$H^mrnOo502tWLBi+6f-0vY-UJg zNGwWEVn}BwXUJeEVn_lX*@a9nG6W!Vv9YlzVPr_brV?3yR4E+Y^_M`I|8S*iOqR@rV`B-#eDoIBd zLgzCw5TPU*T^Bl^pP`3AprN7R$A1uDl$wvO0G-dskb^FS&gTG|`HvaXFh)T}RX$-> zW29Pd@9!_CKGj4efk_-Dz`(%I%D@DdXJ8OOvVxU?K@e^QE655V zJ;ppfuwGVAVH-)1al)(&p28-Q3=AS51_OgALJ35Hm;?g@gSZ;lXA)4;SwYTWV335H z&TYZUz#s+ZvVyqMqKu%>kYQqA=ChGxV31{EK=!?yFjQP#l#zi!K^)3cWI_oeB^d@! zVGC{}ZUzQrVFr*fDte6W!V26e!VCxSV7r?jUA+l zV>5_kU|?Xf?7J^)b zWS1h6UqGRTB&C8bg>Z{H)E=-7gs>K}Fd~8IB84YN2RJDpS!9525kjjmZkL-O=>ml! zl7W_JQs4w2hNQp=n*xzZdMGKx6|17-sERz0k`c&nNS1h`dmGJ_eoUZr364~73IoR) zm_RZl3&{~6^D(@FRROwJuq#6IN;bNCLC!-CHLMEIt-`Jd&8i$GAC%0C;VY~P(5=F* z2+gWorceV|IfOL;u_{2f3cDgStMZtx;kOE_0(7geD?+m>A1Pm8^%YhH=vHA@gl1I% z(*{Gl0feW}p;=YPWN3ufDy$07t-`Jd&8i}%Iry!@ssP<8?25ovAxgy(q*4)@ z&=Hc==#mgC5DIEB6o8FK6p?e#O9)Ug1GR@3RS*k_Qi*2sT=W71tIfDoq1%i{C7R9i z(8~|3Hse->ZZjU0Xg1GBFHW%9j9V4D&3IIz*}MR~biryfZdK?u<57ub^Fs8(2CL1u zRiWFAMEw*m1s6EMlXu6+KgKjy3Kf0qS?Fzy=1~_Gj3JrHsetV zwi!{>EJH48kZeV$Scg>w#72awjo4LzZ9|kZTbV%3W&+Kh9q5G{NDor;Xcu}BgeJcS zy`Vso--n)^(c}-HXF4?bL+DupP5uaa0!EWRhMvsOzg;fE%RoE4wS;fo@O8I!K!m0q>D(s5TtYTpXOh^h0F%*D`6C?%37z#jz0FnYz z3%olMVWKQBm=XU{c%aCCCA_e3_NHRe9yOdeX5#~&g zH__$GnN8vHAitu^S2BmdGdz0I763 zT6k?mRdpJw3N5_ugH$2Pk@M(H3JzBW21p`AD7uWM2&qiGh9renw%^1pbq7f*))gh7 z?n9jouHV2h3?|SL=_Bl_wu8(dx=~%nz-lJXz#wid&%hu7o;dbkXPgF}p9WdVI2|#c%{T)wpUpTEGM^1r zGYc}GJzblDfpLxkSnquhd!7cEU9ZEyz_`Ew%$@>bFR}o$_kq}p9l-1tAofxZFk4@j zfq`*(0GRCpVy}n*v*SSQ)d^sBEr`7~1I%6yVy`Ozvk!vU>np(Qiy-!f1_XO!2bg^q zB)(|^nEejK-ZBHsX4Ye1VBER@!QQ?C%$5L&@7RD~@7w`qYl6gg9RRbzdiR_Fv%zNW zy#QuAgVgN50cJ;l*asef*~K9C!53im3K09y2Qd2~h<)UTBxnNp8;E_Bff39R&}U#^ zJjMax=z};X1RxwQ5a*->gpoKk>rIzXJ$8W7H65a)~mgmVbQIcovoJOpvhIY2mn zK%Da)5RS9~0|VoQ00_ql#JLy&;nadSml7bHIUvsE3Uz{t#40O2`;c&v;S5MCmP$IjRQ;kANzoQxe1-bxUUn{fh!cM`-b@frlJNwDw->~d zX1oC5Jp}P&8E-&%e?dHX#s?6dtT_V%qax!A2+tP8Q(^o7;l+S>YK%W1yfP3^osoeV z94-?;JPk$;2yYdLr^zS);T-|-v=}8Iyn7&?HlqTB_XEV!Vbp-|ge({s7Y0CyhISskkJFes{!$h7y}@@=^&mlV+4e^3B)sDOn~stf_SEk84%tJ z5YLRU0K#LoWME)4XRLtmU(@0)z)HfNU9OKzQIH$c}LV zgl7pd#h!5mgckzhIWTU3@QOh^C&nER-XsvunehOGw-&^6VLSohodNM&881M1uR%OF z#v2eGn-v2CqdVgR2u~Hn^I&`d;kkf#o{S$Lym%1Li}449R|n#GGcvG%<8LmA=flVW z;q3tNd>I8Gyz3yIAEN|>_YK7JXHjd#a7(F1o6(C+HV*rGA7{m)>jDYYSfq3DJ2@oEm4FdyX1Y-t-CjsI`G8RC1 z#voo4V+Di9cqNPq5MCvSSIVdX;mrW?$`}nGymcU6Iim%H2i8}?=m6mz2FX=1 zdO&!0LA+|l00{3hh*!fH0pV%dGcYjLGA2NHu^?U@V+Mp*4&v1_7C?BDK)goA3J7lx zh}Xo}0O36Y@tPSsAUpvF1_s6!#t9If6^Pf$I0M2<0rA=x7eIJ@AYMD;3J7lph}Xfm z0m6F(;&n0Zfbjl+c-@Q#AUtVD1_s6+#uE^p6^Pf%cmcwT1o8S9Z$NkzAYMP?0|;+A zh&O@p1%$T^#GAitb3*v2Ktbp*YgLpd_ z8z8*zAl@#<4hT=&g@J)_590&~&k@Ai$2bGR%LefdFfM@brh<5f7*{}e`$4=Tj2j@l zmmuD8#vKrzoGSwZ<4MK?5S}rJcZ%@@67MwQ1qjarBzK1K2834*;+YG7#?}qXRnw>l|$c25Hb(j>vg! z1_lO>O&}7q##NbPFO~kYJk`6va+yV(Pm)aU;;1Y1*LA*Cm?gcvtl4~ zz^m`TV}l}~PCR57k%JGkUKM1vJ*%(|1A`3ML|GjM25}`F=;~k&Mh+90Dmzw79R>zj zaPNnaQJ>Wvq!Khf%@Gb$qQH>^WwKgv8SwMB=4K^oP446HLj zf}p82u;;<8y|8D&K-sg5)7) zf~^Ew0Umni5CSb>1%-h;hb)xIYR#bmW2%Ck&cVoPqKo2QkTDFbo*+SxIY?$hWRgKL zXtsi#3sTL%+60mYg$6_;Xjv=+$6TnTjNYt^bYao422~}5hEiO&q87$T_dJGKW z7xfqzIPO5TGgc^olgKlWMv$8zt^>J~f%P{?5Y00nH4Lnx`V0)x;DiBAQ6NEZ*ntTK zRuhmk$P9#OFmL(ekb-!NH4m3G!~?w`X*3ssoFT@*x&nt3)ZpW|q#*`B14)CjC#H)T z4Hy`tu}DD;R=_0LwF!q2PzNl; zB@J=F0gyCkS_{(w5202uDsjAlGFfdozQdSmU zc?iP+tT8yGpaxgtl7<*O3nUF1l)^BWW49qFRWmR!s&E{GGFhEDF2b1F5T9|d-o;@A z)B%5RNkbeUZN$JJ4VuowbbyT!)B%t(k%fiT1BYU$Rq42-Ay&14q(Kvdm{u)^Sp|tN z77o_UI21#zx`ay_V%0|@lrjyLaXE}Jg`oy2W0QgyW@n61YC`7jpt&{ys3d8j=>c-27cDFdlND>jhrnTAgu zYR@jbY9RL91F1pF+Q|0&!zT~5N68ekcz~NB0U`@j(54EQYuNsIw z>p*JI$^>M4&f$}X+Vcso8i+k&W|&zY*&Z`|@=$xC@T!5>QwLImmhX}6nTJmvYR@6O zY9RJJGegbY$aXN9Rgf1}(}UGTs)b z0SOX?whq&A>aV(=o6G${Ts z4c?1G3Tp5jT+$GOe}kk!v5#r6m^A}~G!`kS!KS#RAqIzlq(Ny1)8Kp@Qc#2Ya7jZ9 zUJH^2r94c7PvDS(8vGoWG{j&w8+htRPQ$WTgrNpnV3UFv7HoskC;}S@Dhn7`b3rm_ z*##og4w6Aj?+}@VAQ`k&36a?il0i#x5SgnW8MGt=k$Df2L5o<345uwhiHGEBWsnS7 zs6+JF+M)&6i@}vz!417@5CBm4-0}MkRFgc#ARUJAdL*HHTLje zhKoXz&vcL`@WLFpMGPF9V8%PMZigFx5Tp{kI0s4P9hgcN)`xJFuR$uo3v`fFvN=F| za;~i04lpN+IxsLugBR%_sWgD8bYnGztF#BH1TWMCPGtSD6V?30|y&q_PF3 z(u1`Vu5vO+C3wLOlFD^3m7c7d;VSonRDu`nAgR0oQ|ZNe7q0R-NF^veKq3JgvLG%4 zE2AR=gEVOM7eodek`NhCmSj}`NrP6@K%~LJ2ayJ+YI~40XuTIi8XRU2X;9W=jRQ%8 z7J5OX!2t!424zpyT97nog%?B`96AtbP!?sK1Cjyg9IWC%BHNlLDHZ#T@Yz- zI6$O9S(WvcBRqA%y$e~i!}=8=1@@To4AyS(VQec09@)EcRf|eYY5b|Kp zA>={cWMKV-kO%t^ArJB^1FMiTJOserM970Y%)n}dkO%t}ArJC318WdM9_(R+Jjm+| ztVIZUu&)vFApbM4PD03oy^fFv1p))>CWJhi|G_KwST8vFP7#PIC>D&#W5-m)?tM*vaKq^7e$6A0;i55EGm3yoc zKq|qhe-=U|S~!7M@3HOzsRU<)BM6mfAqHN-$NB`M5}YUAxggJ|K!$1%tN2)XT^Sg} zgWeA}UarTQxGPSBb%NGSlS$eL8lHu18Gn_^^t(!CeMY#lWiWhTPF%U^NHvLE0b&fQ<&l8Ut$}NCwOYm&qVC46JD& zL6AH|IYh7;BnVnsha||M1*wi080%RswE3Ui!XNmN-dR|8}{2(!qq@nB#;a8>v{k-1u+5=RrPP!}`}2x01h zm|C+zN7XPeFtBKYrwTzq2xhEvV_*O?c7YUtXUP!e8-TPzr=A!X1Q?MmGX%+@sW%2W z9--X`m1_#(LfmA6V48uL3=9lGjN-cUiq)X2!dz{E%)DX};;MIk>=p~%?8%-F&*SyLf7CowNwp)9qi zI5R&_!9veK&s;$xqokyu*h*hNF)yVkKQl!yJwHD^C$%`gv?w`MFF8L~za&3DCpjZA zGfy9)KgrZI%_zkrH7PB{*fc54%)~gw$UG$}IngjF$;imU($w6*z{1SXT$3cTb8^aZ z6^xUOEsfJs%@fU24ULlw(vlKQ5|hnM6AcU#6U{7)Q_K@hlMD@$Q#2Jc;NJ7`3G;>c zrMN5)oPHS?7zChcfw3xxfw4x8QJO~{ECxDh3?v0Qd?(4 zmdR{WIHqz<pN$W?phmX-X;s&27+6*4EZ9GeowipeR2pHMyi%-zg`v zxY#GLG%q`(pTqGbJCQ0mCa%S6^lg)qp;OfoZpq&j_YYNcaHK(hk_ zLsnj<8JFC1eD=XVBR#CS1tgODQqV=q-zHH0^OcspH z1{^lb0US20oNUa7yV#iho0tuonEgL78*4jWcUHfEzHR+&AlDlM$a&GjHk zy_r>;t%+5>iP>`(Si2XiK{Kl)8;1?60h=eQESncArx&X-TL7y%n-{CL7puG%t1KIH zl@}`~n-{ANn-pq#F0}GxQzzt z88Jc*ScDxuYlfyCCJr4HWB{2DGN%XXzDP9nP%Z=LL`M)Crrrj`VPIgWfzmK>D3_rH z%7BTRK>4u4htb8SL*-%OF!yXi6Nhpcc0n01^{~U5kKzzNizW_AA0VL{AOb1eVB!zZ z#9{9FgC-8;GO&R29RoZ(eV`KjIK;)##7&@lBPb2?7t|OAD>QLvbDO~xhqy1AI1iMc z0j1H+hm>Oo_k;G>f$XkEQx6kwMiYnme;%4R$P5r(h9(Xj4P@AeLwqNiI4u0HpoxPQ zk})ta+(8qErSs=F#NVTd!;bCdg60EQ_`u8;LKBCjH(4Cws%YXc^Fb|2PrR!!a+wMGcquM%<+Tf7w{+)R2*dH1!#EcLursXAoXvc>dn!_mq5jB z(Zshw#X-BdK~gYtjzPttBOeSf@#|1=SpI;CPlt-ff((JW6Xc%XP;uC80WkG~(0I&4 zQ-1&&?qz7=lc3^FXyUV=;(ci1i=pDP(8Sk3#h0OpZ-a`%@)OLR|Doo)tKVSu?uFXR3w19{ zTpAkAQfT5~&;%%lChiMWZ-6FV096lb7r@M~f~t=~Q$HK3J`PR%GE_aJ|H1$cA5c2k z3RPc;rv5He{RA}ehfwuX(8SrG<-%$-aUO9S6Ue%)jYS^IxN> z&w#3j)#EVrrBL%Sy1&W(ZoMM)x-KP zu<&Vvs)zNfVB)`_>aU}jvjnRCHkvpWv>f<^CVmR4{u`RO1XMjQ)E=0<@1g1i(ZnGu zp&1xd(8R^Tdz~2=G|^%v2^+o9?|p^1a$cR)G* z8=CkNsCscI4Rd z@1g3e(ZuDT>Sv&dt4V`=%fK)POZN2M;lBq>d>52|6H3F>`$N^=MHBx7<^O}yF!d9l z>Y1PoP?$K3uZ$*s4ys-qOe?n=PdeG4SLnz$@feJ`5$52*TyXyUMV-HaygpaKcc?P%h`Q1kDiiBEy5 ze~2cY3suh!odSV{&r_&+ZZz?BsCr#Aab5625(WlCH1P#c_2FpZjZpQ`XyUt|>KoC- zFG1C}qKRLDs$Y&KE)5+3SdAwB4yyhlns@Yt;D$3e|! zg$|m)!siH7JtvxYIaIwinz#gXLP;M@d?HkRAewk4RDCF#I4u8^p@~m~s;@#5-v%{* z8k+cFsQOuG;zyzCx1ouDgR0+!CJxJ=*U-e(po>Fpp@~0&n*R+=JPfM-7n=BcsCqHb zq#Dw=Q#(|>6q@*7sCqLr@oiA`R%qg!(EJdFCjJbnJ_=1-4642iOTm`Cr z8k#uh90gE~F$+!H7^;3dns^=5{M~5cPEhqX(8M=E)!#uA4}z-yi6;ISs{SvUcsx|S z6ljnODf~sCM-RxMiRVDoTce4)LDk!%iC00@$DoOqLDeUqiMK)3*P@9phpKNx6Q2xK zKMzg(CRF_*H1UN{_50Dpd7uN;htb40K-E7%6Ssz{e}N``2&$eHI;aXOPs*X{Inl&# zLe*=biSLK1*FzKk2vzToCe8vq4ZhQIUxljQh$cP}s(ve)_-m;8 zYiQy(pz3d-i8DdV-`{BBGRC0NihEucC?1 zfU5t5CVmU5{u`S3I;eVa=%gAfJu8|*!e1Iq{3ukt4Vri=RJ{Y5_#LSFSTym4Q1yvu z;-8`Fo6y8xLe;mSiE~5ikL76MdeDV4tI@=jq3VyIiDy97pFk70fU19rCcX};{w12Y zA5=XXbg>aEJU>F!bD@c+K-FubiOWMLB=yn6OQGt$(Zs``>iyBgyP)c`(Zu_p>hsaW z7eLi_qlq7es_#b=-waj18ciH@G9@Sltw$3-233C=O~T z@6p8HK-F_Y7j?nHA9SiE$Oe8i@&8cu+GygSlP*E(_0hzIq4ldbnm7w+fg1w@gFl+M z22_0xnz$=eeF2)dEmVCkns^;l{X{hJV5s_aXyRL->NlZ@r$N=9M-zVqReu>xyb`MZ z1Dd#^6)1EV7`~v1_d?YRLgyP{;U5N7FN!8UAFAF6O}q!H-V9BA6I6XLn)qR;`fxPy zV^H-aXyTw<>L4Ffpo!mxs-J=;4%)g7Qa=Mt{2NsLdNgr6YmjONhRtZ=Y|!?^c{K5K zsQSxj;-XOXuhGP(Le;-V6W4&MXM@gX!oq(uR6Q4(xG7YKIR z=z>C5H1Q~?`dBn^YpD7}G;vtFumVjy5vslhO}r0k{#-QiNl^6*(ZqK^)$c_UKMqxY z5Ka6XRQ)|PaW?3}kVk0ZPoV05qKT_Q)&E5k7lgKNM4s+T|$H-)O#M-z{Q zsy9XxkA$lCLKClos`o<^Z-A;#MH8P2RiB9_z7VRu0Zn`(RDBDY_))0(*=XYDpz7zN ziNArW--a#@Rlf^OTnyU2xrQdL3SBUJ3r$=Ps{R|Acm!1aFEnvysCqHz{3dnx^4?xvhp^4`~)rX;pe}t-!LKAO-sxLzmSAlL-uR;@_4pl!5O*|5+eioYe zTB!PMXyOx~>UW`uAAzdBjwXH%s{S^b_yeeV$U*an@lx0Z`afvue?rwuLg#y7;co|B zkSdENE(C3#S)qwnK-Jr!iR(bsN27_uHp<7NiMv46*Pw|%gPPxfCJt){&qWglZHNce z7z@$F%c17)Llcj21gU0VID{rX399}Hn)pGRp!3hL@H_!k&xa-#_ zP5d`hy$PE5IjH(DG;sqbi2I|^#2-P`*Pw}m_Pc|0G@yxpfvR7GCO!pf{xURic4&L? z1e*9ssQNQ#;?hv{@6f~O*{vxz70+M22_0)ns@_L{TeiJF6hGX4QS$%pz1H7iQ7TdUqcgL3RV9D zO}qrE{tue?PN;f0==?k^Jl8gQ|B%6Mqg>?~W$^4yry5OqKP|0&2d8$hwY09 zLKD}AuJemS6SstlXQ7EZL&eL`#9`}co6y8z>t_4V#9`}WXQ7G1*1;}A6NjyL-Gn9% zTi3b|O&qp<^%R;oY@O;gG;!E^)JJIIuyv>J(8OWuOMjt>!`6|qLDz}E;t{r9R0vHR zwk}i-O&qrVQwvQTw$9TGO&qqK(+N!+wrpIcIVe9Cop^3xR%PmF|hpmg-fF=%G|F#!R z9JbEw6q-0}J==9OaoD=GCuriZ^=Ti`#9`~u{-KG()|+ud*DJx|7q+fU0!uysnX zb!4z`gRMv6hpy*>iNn?%$)btF))#4`iNn?rS)z%<)(g3#iNn?fg`$bW*8e1!OLn=Etqk#9{N`o@nB*`R;HuaoD_eDw;TK{<;`V95zqgh$ar3kM2hkhs`_BMH7e3 zFRw-uhs`7JL=%V27avCxhs_ILMH7e3|2{?&ht2bTL=%V2=l(|%ht1paLf4JL;t@7K zD~%=&n}^jz6Nk;Wnxl!s=2czM#9{NN!D!;JdD28QaoBulKAJde-m?}>95%n%jV2D8 z$DD~K4x6uBjwTM9m)wdb4x4{Gj3y47XS|3e4x3NBk0uVAH++jG4x1nRjV2D82jqmV ztA)iEY`#w%O&m6_r-~*Ho4+$g6Nk;yIiiWf=HvX)#9{Mpv1sD3`L%2`ao9XsC7L*F zzN{Th95ydD6-^vA|FsxR95&Cj5ltL6pS2%N95!!t7EK&BKXn^T95xU25=|U7-}D_# z95%1S3SD;$i!a#xkuaJ#Y@SFFO&m5Kq>m;JoA1g7x zd6`l)aoGGzGnzPTo@FAMIBY&;KAJde-efJBIBb4oH<~zX9^@pNIBdS-I+{3aUgIg6 zIBfpnGnzPTo`Mm&E*lnKu=xmnG;!FxgDjdjY<@u-O&m6lV2LIUn=f!j6Nk+UgrbSV z#{ZMi#9`z7g=pfi@%(x;aoD(hFPb=Pe10~XIBXn#C7L*FynQ>GIBZ<~D4IBI{QNSS zIBcB!A(}XBJp4VHIBeYeFPb=Pe487(-W(Q>uyJfjG;!E?wK|$OY+TwDO&m7d(`7+zl#9`;r96}S1fsWsv zL=%sIir+*NFNTV9K-am$!nqGBE`lcB1{GIE6Q2qd*FzIu3>CLV6Q2bY4@47(onI4! zCJx&VpN=NJ9coS~&(iNnsp;eoEB zhlOVxR6T5e08Bg#Dz1d4-UlkKi6(9b6`zhKz7i_F7)=~@e$8~~I(L}8ccA;97omxt zf{I^56MqjCzl%dW3c8LPX8s%KzTZ?d@yAf{0yOa(Q1Nm!@sm*T+i2oe(EXv$(8P_P z;vdn(HK5`@(8QIX;#;BXxMA+!2^BwpCcY6Wei}`DIaK@-n)p1ZxEXYvHO&04P;px{ z@%K>ig=pet(EX1q(8Tqj;$F~oC@}NiLD#>9p@~0*it|F(eZbVWL)S-1p^4W+#eLDl zS3|{N>r-In%!P`tK~v8RT`#l)P5cW~{WUakEvWiOXyS5EaR%r*4w$`uP;nkKaVMy_ z7MgeoRNM?rJRK??f+jv4DxQEQ-UAh{LlfTx74Je5Uk4RmfhPU{D!v6x{4!Mh5}G(C zbiK_zG;!E^eR1f#F)V!ULFdzR(8OWuYm3pum7(*Y+|c<|m^sIw;uFxsVdph1LlZv= zo!?xKCVmPkz8g*a0#y7unmEjy2Wa9jbKandUx%9W15NxcRGbw`gU&&ME;R-%V_^`6 zio^W-0?L*!hpTNa7&%hEVkuNa7&%u=5{n zkiXV@A z7b1y+)WhoKrAXo+^&6q;Hz0|F)Wgn?+kzwxQojSLem|P{S*SQHJ%Z8+Nd0-J_)R4B z(5wqiZx4{fLH5GVX?lq!4m&^b6Ph^eT)aO>;vn-u=k|guV1(Kaau3LS*g1);Na7%O z!p`p!fQrNN1?-$dS*SS79N77Hib&!ha}GiII#3#<9^@WqwaWlY?;vrIdtm3{nIfqN znR5incYx9`^{{jCT#&>;>W@MB{!kjG9(FEXFp@Y({b?va4oZX6gTyaF`I%4}CVm;p zuZGgF@F{?{54)h^AoU=B!Onl2j3y2{w{Z@dIPAP3Sb7AR19H!NsJgvS8YZ3v<)4Jo zF!2^B|0^wl2xCK;w1k_zHaoD+{@O%b69~kB@*g2Ol^)P=mpqT^nR|lFn?3_v1 zIhQbVRzTIk?170Nfr`V-gNdJjio^85#9`+yZh*?e#IHd4JD@a79Ci*TOdm)bx+M&( z68XGekT|rt!GM0=FIX`H1H%g_17r@U{)P4Lpvw#ySQ!}@K;}S|F~H&-Bo0y!6NjA( z2Qmj)J?vaKkT|k>2ECNjq|)^G#H6I6)G`LWlGKV42GA`Hxv6<24A3L@oia;u6AR)? z^K$Z&vjZ|KQge#Yq>v=^ic)hDp{5ok=B1|=!|W(7DPll5+8%71UUE)iZUF;C8_0S+ zuf(#%_~iWDc+i~y@t`{a;!8_1bK)V+03D1UUzA#qlbDSMJ0(z40^?txgc64MbDB!B}LByM3{pJGZ0}4B1}MpF^Di?P^r)} z1hEVaKulQ7!eW#>+J}(=>nZFN{~+eU&R2x+7(mw%z?fhfRMvuu5@`1eECwQAu~Z z7#M6ALHB~dcnCTH>V5@iKNsYF5EI?~AoD;Np%cP#f)?no^^Oox%=ibLbBaxWbr3{{ zD73zV@G$j*%1tycf|WL`22%_XPEbPgU)wHHxp#@1Zc&DE{DzsnF|s_Pd^i(`Z+<8AOoQo#)Z+K zbJSsMs1h(WYc80=Akfu<`X?YUXmt%&zW}NqR)51JVE%{kb#bIW326BN^B2gUpe{K~ zKP>+!;z<8Lp!Uyz<|CMWAh*KUAX)~8{T^8C2W_oDw?BlD0d$iJ$S4#%VIhPIYo~(j J1(ikU`T^U<7{UMm literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o b/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..4a4fa07712239a5d7a4d68f9c72ed1a80647b2c5 GIT binary patch literal 23568 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 Io6+?H0GK}eFaQ7m literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o b/hoko-blur/.cxx/cmake/release/arm64-v8a/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..1c78bf4a6026b58443dbf011b4ff314449c9323f GIT binary patch literal 27880 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 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build.json b/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build.json new file mode 100644 index 0000000000..0607072bfb --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build.json @@ -0,0 +1,59 @@ + +{ + "buildFiles" : + [ + "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt" + ], + "cleanCommands" : + [ + "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a --target clean" + ], + "cppFileExtensions" : [ "cpp" ], + "libraries" : + { + "hoko_blur-Release-arm64-v8a" : + { + "abi" : "arm64-v8a", + "artifactName" : "hoko_blur", + "buildCommand" : "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a --target hoko_blur", + "buildType" : "release", + "files" : + [ + + { + "flags" : " --target=aarch64-none-linux-android21 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BlurUtil.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a" + }, + + { + "flags" : " --target=aarch64-none-linux-android21 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/StackBlurFilter.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a" + }, + + { + "flags" : " --target=aarch64-none-linux-android21 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/GaussianBlurFilter.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a" + }, + + { + "flags" : " --target=aarch64-none-linux-android21 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BoxBlurFilter.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a" + } + ], + "output" : "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/arm64-v8a/libhoko_blur.so", + "toolchain" : "5697535246732911383" + } + }, + "toolchains" : + { + "5697535246732911383" : + { + "cCompilerExecutable" : "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang", + "cppCompilerExecutable" : "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" + } + } +} diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_hoko_blur_arm64-v8a.command.txt b/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_hoko_blur_arm64-v8a.command.txt new file mode 100644 index 0000000000..245d4bf981 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_hoko_blur_arm64-v8a.command.txt @@ -0,0 +1,8 @@ +Executable : /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +arguments : +--build +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a +--target +hoko_blur +jvmArgs : + diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_hoko_blur_arm64-v8a.stderr.txt b/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_hoko_blur_arm64-v8a.stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_hoko_blur_arm64-v8a.stdout.txt b/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_hoko_blur_arm64-v8a.stdout.txt new file mode 100644 index 0000000000..964c94da09 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_hoko_blur_arm64-v8a.stdout.txt @@ -0,0 +1 @@ +ninja: no work to do. diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_mini.json b/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_mini.json new file mode 100644 index 0000000000..6f4dd6a4df --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build_mini.json @@ -0,0 +1,16 @@ +{ + "buildFiles": [ + "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt" + ], + "cleanCommands": [ + "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a --target clean" + ], + "libraries": { + "hoko_blur-Release-arm64-v8a": { + "artifactName": "hoko_blur", + "buildCommand": "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a --target hoko_blur", + "abi": "arm64-v8a", + "output": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/arm64-v8a/libhoko_blur.so" + } + } +} \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_generate_cmake_ninja_json_arm64-v8a.command.txt b/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_generate_cmake_ninja_json_arm64-v8a.command.txt new file mode 100644 index 0000000000..dbffb28357 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_generate_cmake_ninja_json_arm64-v8a.command.txt @@ -0,0 +1,17 @@ +Executable : /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +arguments : +-H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni +-B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a +-DANDROID_ABI=arm64-v8a +-DANDROID_PLATFORM=android-24 +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/arm64-v8a +-DCMAKE_BUILD_TYPE=Release +-DANDROID_NDK=/home/amit/Android/Sdk/ndk/20.1.5948944 +-DCMAKE_CXX_FLAGS=-std=c++11 -frtti -fexceptions +-DCMAKE_TOOLCHAIN_FILE=/home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja +-GAndroid Gradle - Ninja +-DANDROID_PLATFORM=android-13 +-DANDROID_TOOLCHAIN=clang +jvmArgs : + diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_generate_cmake_ninja_json_arm64-v8a.stderr.txt b/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_generate_cmake_ninja_json_arm64-v8a.stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_generate_cmake_ninja_json_arm64-v8a.stdout.txt b/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_generate_cmake_ninja_json_arm64-v8a.stdout.txt new file mode 100644 index 0000000000..49178168cb --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_generate_cmake_ninja_json_arm64-v8a.stdout.txt @@ -0,0 +1,16 @@ +-- android-13 is unsupported. Using minimum supported version 16. +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Detecting C compile features +-- Detecting C compile features - done +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +-- Detecting CXX compiler ABI info +-- Detecting CXX compiler ABI info - done +-- Detecting CXX compile features +-- Detecting CXX compile features - done +-- Configuring done +-- Generating done +-- Build files have been written to: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/build.ninja b/hoko-blur/.cxx/cmake/release/arm64-v8a/build.ninja new file mode 100644 index 0000000000..0907f29159 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/build.ninja @@ -0,0 +1,147 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.6 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Hoko_blur +# Configuration: Release +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include rules.ninja + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a && /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 +build edit_cache: phony CMakeFiles/edit_cache.util + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a && /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake -H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni -B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 +build rebuild_cache: phony CMakeFiles/rebuild_cache.util +# ============================================================================= +# Object build statements for SHARED_LIBRARY target hoko_blur + +build CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BlurUtil.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BlurUtil.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir +build CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/StackBlurFilter.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/StackBlurFilter.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir +build CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/GaussianBlurFilter.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/GaussianBlurFilter.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir +build CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BoxBlurFilter.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BoxBlurFilter.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target hoko_blur + + +############################################# +# Link the shared library /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/arm64-v8a/libhoko_blur.so + +build /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/arm64-v8a/libhoko_blur.so: CXX_SHARED_LIBRARY_LINKER__hoko_blur CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o | /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/libjnigraphics.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG + LINK_FLAGS = -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -static-libstdc++ -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -Wl,-z,noexecstack + LINK_LIBRARIES = /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/libjnigraphics.so -latomic -lm + OBJECT_DIR = CMakeFiles/hoko_blur.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libhoko_blur.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/arm64-v8a/libhoko_blur.so + TARGET_PDB = hoko_blur.so.dbg +# ============================================================================= +# Target aliases. + +build hoko_blur: phony /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/arm64-v8a/libhoko_blur.so +build libhoko_blur.so: phony /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/arm64-v8a/libhoko_blur.so +# ============================================================================= +# Folder targets. + +# ============================================================================= +# ============================================================================= +# Built-in targets + + +############################################# +# The main all target. + +build all: phony /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/arm64-v8a/libhoko_blur.so + +############################################# +# Make the all target the default. + +default all + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompilerABI.c /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompilerABI.cpp /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCommonLanguageInclude.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompileFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompilerABI.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeFindBinUtils.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeGenericSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeLanguageInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeParseImplicitLinkInfo.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystem.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInitialize.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCompilerCommon.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/GNU.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Internal/FeatureTesting.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Android.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Linux.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/UnixPaths.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/platforms.cmake /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt CMakeCache.txt CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx + pool = console + +############################################# +# A missing CMake input file is not an error. + +build /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompilerABI.c /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompilerABI.cpp /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCommonLanguageInclude.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompileFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompilerABI.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeFindBinUtils.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeGenericSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeLanguageInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeParseImplicitLinkInfo.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystem.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInitialize.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCompilerCommon.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/GNU.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Internal/FeatureTesting.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Android.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Linux.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/UnixPaths.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/platforms.cmake /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt CMakeCache.txt CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx: phony + +############################################# +# Clean all the built files. + +build clean: CLEAN + +############################################# +# Print all primary targets available. + +build help: HELP diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/build_command.txt b/hoko-blur/.cxx/cmake/release/arm64-v8a/build_command.txt new file mode 100644 index 0000000000..dbffb28357 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/build_command.txt @@ -0,0 +1,17 @@ +Executable : /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +arguments : +-H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni +-B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a +-DANDROID_ABI=arm64-v8a +-DANDROID_PLATFORM=android-24 +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/arm64-v8a +-DCMAKE_BUILD_TYPE=Release +-DANDROID_NDK=/home/amit/Android/Sdk/ndk/20.1.5948944 +-DCMAKE_CXX_FLAGS=-std=c++11 -frtti -fexceptions +-DCMAKE_TOOLCHAIN_FILE=/home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja +-GAndroid Gradle - Ninja +-DANDROID_PLATFORM=android-13 +-DANDROID_TOOLCHAIN=clang +jvmArgs : + diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/build_model.json b/hoko-blur/.cxx/cmake/release/arm64-v8a/build_model.json new file mode 100644 index 0000000000..c0f9a9721f --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/build_model.json @@ -0,0 +1,74 @@ +{ + "variant": { + "module": { + "rootBuildGradleFolder": "/home/amit/projects/BlissLauncher", + "sdkFolder": "/home/amit/Android/Sdk", + "isNativeCompilerSettingsCacheEnabled": false, + "isBuildOnlyTargetAbiEnabled": true, + "splitsAbiFilterSet": [], + "intermediatesFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates", + "gradleModulePathName": ":hoko-blur", + "moduleRootFolder": "/home/amit/projects/BlissLauncher/hoko-blur", + "makeFile": "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt", + "buildSystem": "CMAKE", + "compilerSettingsCacheFolder": "/home/amit/projects/BlissLauncher/.cxx", + "cxxFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx", + "ndkFolder": "/home/amit/Android/Sdk/ndk/20.1.5948944", + "ndkVersion": "20.1.5948944", + "ndkSupportedAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkDefaultAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "cmakeToolchainFile": "." + }, + "buildSystemArgumentList": [ + "-DANDROID_PLATFORM\u003dandroid-13", + "-DANDROID_TOOLCHAIN\u003dclang" + ], + "cFlagList": [], + "cppFlagsList": [ + "-std\u003dc++11 -frtti -fexceptions" + ], + "variantName": "release", + "soFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/lib", + "objFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj", + "jsonFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release", + "gradleBuildOutputFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release", + "isDebuggableEnabled": false, + "validAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86" + ], + "buildTargetSet": [] + }, + "abi": "ARM64_V8A", + "abiPlatformVersion": 24, + "cxxBuildFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a", + "jsonFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build.json", + "gradleBuildOutputFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/arm64-v8a", + "objFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/arm64-v8a", + "buildCommandFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/build_command.txt", + "buildOutputFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/build_output.txt", + "modelOutputFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/build_model.json", + "cmake": { + "cmakeListsWrapperFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/arm64-v8a/CMakeLists.txt", + "toolchainWrapperFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/arm64-v8a/android_gradle_build.toolchain.cmake", + "buildGenerationStateFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/arm64-v8a/build_generation_state.json", + "cacheKeyFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/arm64-v8a/compiler_cache_key.json", + "compilerCacheUseFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/arm64-v8a/compiler_cache_use.json", + "compilerCacheWriteFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/arm64-v8a/compiler_cache_write.json", + "toolchainSettingsFromCacheFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/arm64-v8a/compiler_settings_cache.cmake", + "cmakeWrappingBaseFolder": "." + }, + "jsonGenerationLoggingRecordFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/json_generation_record.json", + "compileCommandsJsonFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/compile_commands.json" +} \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/build_output.txt b/hoko-blur/.cxx/cmake/release/arm64-v8a/build_output.txt new file mode 100644 index 0000000000..091cbb9ac4 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/build_output.txt @@ -0,0 +1,16 @@ +-- android-13 is unsupported. Using minimum supported version 16. +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Detecting C compile features +-- Detecting C compile features - done +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +-- Detecting CXX compiler ABI info +-- Detecting CXX compiler ABI info - done +-- Detecting CXX compile features +-- Detecting CXX compile features - done +-- Configuring done +-- Generating done +-- Build files have been written to: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/cmake_install.cmake b/hoko-blur/.cxx/cmake/release/arm64-v8a/cmake_install.cmake new file mode 100644 index 0000000000..c2f08d00a2 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/cmake_install.cmake @@ -0,0 +1,44 @@ +# Install script for directory: /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni + +# 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 "Release") + 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 "1") +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 "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/json_generation_record.json b/hoko-blur/.cxx/cmake/release/arm64-v8a/json_generation_record.json new file mode 100644 index 0000000000..c0971fbe16 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/json_generation_record.json @@ -0,0 +1,14 @@ +[ + { + "level": "INFO", + "message": "Start JSON generation. Platform version: 24 min SDK version: arm64-v8a" + }, + { + "level": "INFO", + "message": "JSON \u0027/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a/android_gradle_build.json\u0027 was up-to-date" + }, + { + "level": "INFO", + "message": "JSON generation completed without problems" + } +] \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/rules.ninja b/hoko-blur/.cxx/cmake/release/arm64-v8a/rules.ninja new file mode 100644 index 0000000000..6a5e3b4e2c --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/arm64-v8a/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.6 + +# 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: Hoko_blur +# Configuration: Release +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for compiling CXX files. + +rule CXX_COMPILER__hoko_blur + depfile = $DEP_FILE + deps = gcc + command = /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $IN_ABS + description = Building CXX object $out + + +############################################# +# Rule for linking CXX shared library. + +rule CXX_SHARED_LIBRARY_LINKER__hoko_blur + command = $PRE_LINK && /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake -H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni -B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/arm64-v8a + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja -t clean + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja -t targets + description = All primary targets available: + diff --git a/hoko-blur/.cxx/cmake/release/armeabi-v7a/.ninja_deps b/hoko-blur/.cxx/cmake/release/armeabi-v7a/.ninja_deps new file mode 100644 index 0000000000000000000000000000000000000000..43563911a4970f11f256e3a6caf4b2b91bc9731a GIT binary patch literal 10116 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%0A(Rvu)__&jxh#19MmTRDK=mfnF?w~f}&w7 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 LBg0gfB$B-VCS7al literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake b/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake new file mode 100644 index 0000000000..5c58572079 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.0.0-36-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.0.0-36-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + +include("/home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "armv7-a") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeOutput.log b/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000000..cd4fb9c88e --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeOutput.log @@ -0,0 +1,477 @@ +The target system is: Android - 1 - armv7-a +The host system is: Linux - 5.0.0-36-generic - x86_64 +Determining if the C compiler works passed with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_c8801" +[1/2] Building C object CMakeFiles/cmTC_c8801.dir/testCCompiler.c.o +[2/2] Linking C executable cmTC_c8801 + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_a8e80" +[1/2] Building C object CMakeFiles/cmTC_a8e80.dir/CMakeCCompilerABI.c.o +[2/2] Linking C executable cmTC_a8e80 +Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn) +Target: armv7-none-linux-android16 +Thread model: posix +InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x +Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x +Candidate multilib: thumb;@mthumb +Candidate multilib: armv7-a;@march=armv7-a +Candidate multilib: armv7-a/thumb;@march=armv7-a@mthumb +Candidate multilib: .; +Selected multilib: armv7-a/thumb;@march=armv7-a@mthumb + "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -EL -z now -z relro -X --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m armelf_linux_eabi -dynamic-linker /system/bin/linker -o cmTC_a8e80 /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --exclude-libs libunwind.a --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_a8e80.dir/CMakeCCompilerABI.c.o -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtend_android.o + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(arm-linux-androideabi-ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_a8e80"] + ignore line: [[1/2] Building C object CMakeFiles/cmTC_a8e80.dir/CMakeCCompilerABI.c.o] + ignore line: [[2/2] Linking C executable cmTC_a8e80] + ignore line: [Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn)] + ignore line: [Target: armv7-none-linux-android16] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x] + ignore line: [Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x] + ignore line: [Candidate multilib: thumb] + ignore line: [@mthumb] + ignore line: [Candidate multilib: armv7-a] + ignore line: [@march=armv7-a] + ignore line: [Candidate multilib: armv7-a/thumb] + ignore line: [@march=armv7-a@mthumb] + ignore line: [Candidate multilib: .] + ignore line: [] + ignore line: [Selected multilib: armv7-a/thumb] + ignore line: [@march=armv7-a@mthumb] + link line: [ "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -EL -z now -z relro -X --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m armelf_linux_eabi -dynamic-linker /system/bin/linker -o cmTC_a8e80 /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --exclude-libs libunwind.a --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_a8e80.dir/CMakeCCompilerABI.c.o -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtend_android.o] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld] ==> ignore + arg [--sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-pie] ==> ignore + arg [-EL] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-X] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--hash-style=both] ==> ignore + arg [--enable-new-dtags] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [armelf_linux_eabi] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker] ==> ignore + arg [-o] ==> ignore + arg [cmTC_a8e80] ==> ignore + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtbegin_dynamic.o] ==> ignore + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--exclude-libs] ==> ignore + arg [libgcc.a] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libatomic.a] ==> ignore + arg [--build-id] ==> ignore + arg [--warn-shared-textrel] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libunwind.a] ==> ignore + arg [--no-undefined] ==> ignore + arg [-znoexecstack] ==> ignore + arg [--gc-sections] ==> ignore + arg [CMakeFiles/cmTC_a8e80.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtend_android.o] ==> ignore + remove lib [gcc] + remove lib [gcc] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [dl;c;dl] + implicit dirs: [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_ab6c0" +[1/2] Building C object CMakeFiles/cmTC_ab6c0.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_ab6c0 + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_9ac17" +[1/2] Building C object CMakeFiles/cmTC_9ac17.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_9ac17 + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_6b80e" +[1/2] Building C object CMakeFiles/cmTC_6b80e.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_6b80e + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_46950" +[1/2] Building CXX object CMakeFiles/cmTC_46950.dir/testCXXCompiler.cxx.o +[2/2] Linking CXX executable cmTC_46950 + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_26d19" +[1/2] Building CXX object CMakeFiles/cmTC_26d19.dir/CMakeCXXCompilerABI.cpp.o +[2/2] Linking CXX executable cmTC_26d19 +Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn) +Target: armv7-none-linux-android16 +Thread model: posix +InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x +Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x +Candidate multilib: thumb;@mthumb +Candidate multilib: armv7-a;@march=armv7-a +Candidate multilib: armv7-a/thumb;@march=armv7-a@mthumb +Candidate multilib: .; +Selected multilib: armv7-a/thumb;@march=armv7-a@mthumb + "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -EL -z now -z relro -X --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m armelf_linux_eabi -dynamic-linker /system/bin/linker -o cmTC_26d19 /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --exclude-libs libunwind.a --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_26d19.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lc++ -Bdynamic -lm -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtend_android.o + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(arm-linux-androideabi-ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_26d19"] + ignore line: [[1/2] Building CXX object CMakeFiles/cmTC_26d19.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [[2/2] Linking CXX executable cmTC_26d19] + ignore line: [Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn)] + ignore line: [Target: armv7-none-linux-android16] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x] + ignore line: [Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x] + ignore line: [Candidate multilib: thumb] + ignore line: [@mthumb] + ignore line: [Candidate multilib: armv7-a] + ignore line: [@march=armv7-a] + ignore line: [Candidate multilib: armv7-a/thumb] + ignore line: [@march=armv7-a@mthumb] + ignore line: [Candidate multilib: .] + ignore line: [] + ignore line: [Selected multilib: armv7-a/thumb] + ignore line: [@march=armv7-a@mthumb] + link line: [ "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -EL -z now -z relro -X --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m armelf_linux_eabi -dynamic-linker /system/bin/linker -o cmTC_26d19 /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --exclude-libs libunwind.a --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_26d19.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lc++ -Bdynamic -lm -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtend_android.o] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld] ==> ignore + arg [--sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-pie] ==> ignore + arg [-EL] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-X] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--hash-style=both] ==> ignore + arg [--enable-new-dtags] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [armelf_linux_eabi] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker] ==> ignore + arg [-o] ==> ignore + arg [cmTC_26d19] ==> ignore + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtbegin_dynamic.o] ==> ignore + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--exclude-libs] ==> ignore + arg [libgcc.a] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libatomic.a] ==> ignore + arg [--build-id] ==> ignore + arg [--warn-shared-textrel] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libunwind.a] ==> ignore + arg [--no-undefined] ==> ignore + arg [-znoexecstack] ==> ignore + arg [--gc-sections] ==> ignore + arg [CMakeFiles/cmTC_26d19.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-Bstatic] ==> ignore + arg [-lc++] ==> lib [c++] + arg [-Bdynamic] ==> ignore + arg [-lm] ==> lib [m] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/crtend_android.o] ==> ignore + remove lib [gcc] + remove lib [gcc] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/../../lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/armv7-a/thumb] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [c++;m;dl;c;dl] + implicit dirs: [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/arm;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_96629" +[1/2] Building CXX object CMakeFiles/cmTC_96629.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_96629 + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_8c087" +[1/2] Building CXX object CMakeFiles/cmTC_8c087.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_8c087 + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_54993" +[1/2] Building CXX object CMakeFiles/cmTC_54993.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_54993 + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/TargetDirectories.txt b/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000000..8ef72a9a26 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/edit_cache.dir +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/rebuild_cache.dir +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/hoko_blur.dir diff --git a/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/cmake.check_cache b/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000000..3dccd73172 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/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/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.bin b/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..d358c5f929c6b3d4a852e29f1aa9c40fb77fb4ed GIT binary patch literal 79424 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 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.cxx b/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.cxx new file mode 100644 index 0000000000..a9b4791caf --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_aggregate_nsdmi) +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alias_templates) +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_attributes) +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_auto_type) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_binary_literals) +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_constexpr) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_contextual_conversions) +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_decltype) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_decltype_incomplete_return_types) +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_default_function_template_args) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_delegating_constructors) +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_deleted_functions) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_explicit_conversions) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_inheriting_constructors) +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_lambdas) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_init_captures) +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_local_type_template_args) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_noexcept) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_nonstatic_member_init) +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_nullptr) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_range_for) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_raw_string_literals) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_reference_qualified_functions) +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_relaxed_constexpr) +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_return_type_deduction) +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_rvalue_references) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_static_assert) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_strong_enums) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 199711L +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_thread_local) +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_trailing_return) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_unicode_literals) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_unrestricted_unions) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_user_literals) +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_variable_templates) +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_variadic_templates) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o b/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..1364dfe1d57c61c3e6c0a15605ccaf49c002a6ce GIT binary patch literal 59336 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 Q0X0Y%g4TzD)PeFd0P{11SO5S3 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o b/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..4ac0654486b4e1ce550f0e49a4581573a7ed907f GIT binary patch literal 15676 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 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o b/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..8049c4bfc293ae32ee8b67f70edfd742998cf4c6 GIT binary patch literal 17304 zcmb<-^>JflWMqH=Mg|QA1do9s!WJyUY67M-z_K5+YKQkQ|=D+poVlc%vg`8UI_q6Zt^d8}fYvEiM^F6NmV-g$88Jecs7L2Bze2dR(m1b!)B$dZV16?R*( zfAvR3W+&Gj`<>mGUvn{q{ZLXk^qF1d@+PKt0#?lL1iW^! zcz48$@g37D#&^uS7~ipQu^2EKdb(b?yZzk(F4osvjQ^Dk-f?p8eRqIc(Sv;=+v`Tg z3YU`=EE#MQ859NH32-fN-~R427X!eugm zBjC-rVebnD{ttT@_Je}Aih+T_e>ziR14Hx44I5T}0Exjca+tGB>TzS901ET#FPXWo zzhq7Pl^N**3U9wIMgykTY#itz&NQ**f&VLShD~m)6RJSr&BY7~Zz(2Fcx&lCnDCat zYU?`(D^Pf=T;O`m$l~IvRM zyRjSltTk>N&MY(QGPyo7a)HACkn8_%P3yToGIBG{XmOf+Qwu~kX?>MC76wu9T=H*DQ|UofzL*b7P{-qV>H3mTeE zZrHG4HHZ(xkaWYqKY0VIo0kWJR)x!j9}F9A|6pJcn!xa(p@C5ZMKu!*_VulhHhtHG9S=(W1qn~Apopi?!nz3G7I)(1h^@J z`9Cv~#R98ygCg`s&7z+Y zoSLGLpQlh{Y+`0?VVSI{kerj4m#$EjT2!2wpQm7~E6z;MOHEP8%qwB=@DK8g z^7jjI^kE2d4GQsecJyIz@(=M~aLFu6O)kmI&tm{7i;vIDD={{TF9GqubQVZBEhj&* zgrT@3g&`$1Ij5wuAXOu;G$*H^q)3wi%7`yvh>y=p$u?vtC@D(GOiPO|VJOb5N{ugJ z$W5$>Pt3_o&jYE6GES{1NMlH?C}4<>&q*#Qh_7HsM+ys%{G!aN{JfIH92DWO)S{Bi zW{8GE0jYQu9(G z7?SgIiWxFeGt)ClKmw6q0V9UY{Is;<)DngY5TBulA)O(KA&nukf}toq31pjRUP@{O zLuMjFW)VYXIzwg>LoQTDW+g*Wet9uNab|jMB7`(DV#oxmFUbc5O;LV1LvCV8QDy~0 zCPQjo8AH66pQmeH83U98MG-@MR&q{aaWMmoO3EzBO)OxD&&p2%B~%7D9S`+QR(uLP zHDtv@?8}Nz&M!(WW=P5{@XSlgXNZq4g(VR;iajfFcPZ1P?SF1_p*{5dU<-{R8UhK?M=n z1e9YzS%rzg0G@n7VjkdFH<%Bip_)42COI%LFw6lvA_U|#5C)|Vh$G;U31TEb9DxYw zItB)YNnow;FaT-ig9w2_5G2mX5DKCcAn6}e9)T2rF^I#+0FQW(mKrUir2mw(bg-i^!5+D^YYy`Hh92C+pAqJ=zN*08QaljOT(mT{VP@xDG zwqsym02RcH3;{(93=AM?Mh1|@U|EpoKqWsTLl~&!1IaQm)Pf=sEDe$ZMG7NBD2Ree zg8~OE4boBp4p>2k`5;Cc*oz=T;qp*DpfCZ8mB1YVG8`-fia}5TiogS{YPf}~Yck1>xAY!a)du)U-LHv@wh)M!?aS>mWJ z0jXhNkdS3G6b3mkf;*C%fk6`FG(%wq1}R|%WQ&M1#rz4Y1*?ENr0m4VcZs!q&>bz`)K1Dw@HWfOR`mHH#%D zh{eTjbeMsGfs5Vv9GJ4W2@+)hIh}!v)dW-n!!2MlW`((v&5rd6SRn%ghXxNXh#3Pa z8^JE*>7NfWo(1Q^>OxL#kTXGviUGnDV44Wd&73?S z2?3^w;QY?X3*~_dSOz!`Tt2{g;2a3y30A{w7XWD#1hpAJBAmit?rjj8fq{XO56pcB z;|hVfOyF2!VBq8jb3qLOkOEGKQPwb7FjojvihN^WU=S3AiHm`B34?S9`oY8`K+z+Z zjLNM*<(`0XwLu05eu8mzz+6sf@y@9W=E}ghdSI?TjH?ggLIOz=lt_d?i3U`r2=>Cv zlLom(sDOci0aSYkE`o{6fwT&4g>h9tT#zpqz)_unh-y*je-~?3e zQdI6&7&ioDfFLJ0(=sq{hJv{YFm4!_YYgLtgSl=nZUl%6afdTFnnCTR2v9QI1vB0i zpCt%zZu9GvNr{HzQN5aYl}*9MVvi}}o9I*U)TF);8Y!nyZA+!7eK zrJRAa}TKR!@&9y#H<=f!Lt34Mc;IH;4u$7!VD?(2<1^KlJEm$-uyn2paBVVAN+|U~o3lGq7Y}<6?K@ zVB}=tV&P-pXB1!*WD;T#VH9N)XO>`;WRzl3VpIdg2B>KN|NsAg76uju#u`3w^8u7p zAwkT*0E!AHK9N4gcBVGwR+bi4CmwbVmu|K$_D+rtP8Zg0CLY! z2TU(0`bg0W>S@9Bf}$K#Zx>r9dk2RLYZnt2YbO&AYX=i3zrkDU3=9mQB!a0A=3WMd z95zrJ@B|YB10y5jZ$4fS1qugHQAG9_Zf0I`PH9Ri@}Mm=aq0)BWb5apWa}Fl=o#vn zTAEl`nwTJlwu|*ao;IhlE-6}lA`X7Oew`o)#SMfv$9`lZE1`gF5F zKUrH_zs!)zUdhQ!GBbgU5 z3{d9+d2AYKK7f@0G|rm=F%&X@tCzt5D%@E(8CbzBEoL4@RtYYSS8U9=UaZ1w%zS#R zGHhwA5^P4S!dk52-mDV)SfzYf8Q7S!^jM{s#k`oayjZ2#n58*vSVetUWfrhXvgxrJ zvVCV&VDna(hQdb6r{ zdb8?zv#O-9ii0%jffQM@8L*1$vRdo2s(7-Bv!$`Rvw5?sGNXGmj}W%FXyYhvMIjbdZ|&+5g($;!&yP_>Iykxh@)l1-nL z-SJW%4F#OTE;$OcLwo}l!>{JsukH1kwOJvQdo zb$ZNG8NHZa*MVY!c>$vr8}oy@G?0%MGp4c1d9W%Nu=28j5?UJ@^UXSrHLMbB%+nat z*qC3{HG!1PWYlAoOJU_TVC8IMWo72&IMI^M#(cRh4HOUS7@OFbFV)Rs;$lErNCK_c zN(fCKu_$Sf$m(lpw(fAM1 z_%G4;@6h;P(D*;l_*~%P3gjb*|3uLE(rA2DG`#d=#y3afTcYu8(D)8$d`~pK4;tSejUR-@hm9`4!Y>w0 zJ^_uNipI}I;}@gxE7AD%X#8e0eis_Q2aOLK$AGza2AceQH2xAa{u(s?W;Fh8H2x7Z z{uwm>RW$xXH2zC8{zo+aPc%LYbW8!}KVCGx2pV4+jjxEthYi-i%(Ft1w?X6EA@TPy zGcbg}%P(ezxy+DRLr8w(V3^DdnbU#rc^NvH85k_!>V+5%!~F(Q!OXA-h0no&h&zxx zFGC-Sybwqbj+qe|9W2Jo0Pf9$*&u?M0X(b>VuCR<0~eTv5zLSgLl~EVnE^cLhr~y> z4?L2EBo7)@gL4^}8NdS%Z~2Xkbwad z&Rj*1(KxPp28Jxqcwz$s!we8z3Ry+KRmZ?^1Ih=@U2)YiFbFU*FmM$!Fn}iFxoQ{~ zWI+5H2Ji$QR|O=kCx8Y9L0*BmBMa(|Y>*%W0~6GLAR0880ir=E4@84zBS17LrGRLV zyFoN)mK#KarYAtOBWR2_1u`@a;)8~dKr|>EKs0E^6hx;()q$)A@j*cZqU)jJ?NGWK zN`odIuJb%Dh`^i2Ju%y`D>x{Rw%s_N`odaK9~8bI8Z}w#OGy##5-s{1jJW>@<9_KAign_51O%HN@HMf1M$-s7(i_^5I+#g z2Tfss_^D8S4wNo{(&bRP8cKuaI6&(Ap!}&&dM1=!38mLU=`B!t2bA6qr4K`CP+JaU z-Zd!y9+U>P;XvXqq5QW{`YV(Mwb4NGpji(P4QhjdXwb9=h*n@`U;xpec@Gc`Y9oPY z(8LFbc7w`;+9n`=B$N-D`T+5BpnT922Z#@9Q-Ekt+WIY9iCP(ElH0>lT^ zYakjl{Q#mbL*+s94)s!BmLXo>QkY7&_o7^UjgOUL+NHH4Vu{i$xnmw=R)a) zPi4pJy1SqN(IDU z0Of;bOhEk2P(EnN1jIiE<%4EQKzz_-2#5wvm4N6sPm6*1Ir85q8U_&E#=zd^JtWNisk4g&*dVHA@b0|U4o z$zfms*CX-_450PeAbD_oqQJml3@V>B85kTvv>F40KZsUkV2B0LDhv$SAX=G$p%O$Z zF)*}%=o|)y4iK%#z%Us^=P)o#2hr*b4B&bshk*fHk7zJ3Yy^qtFff4Y6D`_0|N_)mSjh*n}?$Oq9m3=E(?Dw8e)Lmiag1fta$7R!g22dXm>`xFMG;0Mak3s$f(FP0*{2&_SPY`X$z#s>ra~K$uK(r|XgD!~9VPG%> z(Pj(`pgtVPJO>cpoPog`MCULt_=9K*28JjQox{Ko2cj(*7&1Y$6$3*Fh)!c*s0GnE z3=EAR+K7Rn2SleaFiZu}ISdRlL9{gk!x9jk!@#ftM4K=$fa@JG28KN#zBmKJNf0f; zz;F#jXD~240MXJ646i|S4gDE9Rq_pl&=k$hfguD$=P)otfM_QMhGY<( z!@!UZqMaES%0P4m14AQ-&S7Ba0nu3u4B&c4hJgWG@8mErfa@I>1_p3_lf%HU0i@2I zfnhg@&S7BK52C#o7*2uc90rDSAljFK;UMU|>)I(K!qZ8X!87fx#F==P)psgXky*1}6}m z!@%GMqGcHv0zq^R14Af?j%Hv;0MS_t44EK0hk+p%L_0Gu!0MqU5I={3p$$YUGcZg9 z(K!qZQ$e&U1H(cPoyEYg3Pk5HFsuX7N(>A;L39oS!(I@r!oYADM7uFC+yc?A3=EG! zv?l|@dl2ox!0-b^`!F!DvNJF+c{4Bwg6MDt23ZiTz`&phqBR*9OhI%A1A`-o4rO5Q z1<_#)3~?Yjn1LY^L_-(Yg4)xdAqx-<8UX;&;QB6wfdSNG2erRI3v)m;Xt5-S2CWAL z(cl$tDUg05NFQkK7bFf^%nG7GYgR$+AJB3t5Di+I1gc-b{jV&j`S}ds1^giWpp~sm z`H+4lNIz)N8i+pyRBvT4Fo63@`3wx;{!$hL!*x)(m%_mC8dMIXF)+LV<%bLghB{EX z0CiI1LsY#{j@rg-EMX6;BdL^k9B@Cd=Lb<7VC8#?M;!E>#@{_Zn zJ2{}Uv5-v&@kkPSjzPY9i6tdPnMtK3sl^O>MX5PZONtWn(qSSXRjC!3DHUKV^(fnL z0=5I>bV|*ExT+*Ei7Kvw1Z{Ci5d)4X$mE>F+yYn>Gch?kJ~<;hJ}ogb2NKQ@_rpUKX-5y(RB#X>3qsVx{fjIGiZ+Ne+&CPYi4aEP zQUEarZVfJF1gwN_RKji{LK=^C2t|4MC8>JuexbU>C5g$|pj}gGkT8Ss^E(@PVJQW$a*b8_;Nk(GnF#U({0iAfB4#g(}r8kX;JQ*)DZiYypZ zQuNFjR7&*BKrB-b%LK$S2C=$}{s);z8TF3W^Lt3JgICK&1?1EQk=9$qd@1 zf>1TVl7Zm_(ij?OYz-s}D$hV{Q2QRl2aSt?Xcz{Shah$h6L?zzc%~f02dM*%-GSI3 z3{wXhZvZdC1qm`RFeGR(fJal+!3)MA<5{4xwFqh+Yzk%qBV=3BD9y~rYm>C#AW2GQ7Kp3PBM1%SP$mT83f`l_DTzH}G1DVGS zH4hdaptOR`AGaan$Z&sv+NB`wVhe3Vx&kdI1*rq+%Y@ns%b^CW3=Ga7NvJ+hngiiD zW=KAQ3NsXQGBErGB~YjUNDYV?#f+Ms1GE_!8rT>ZK>h`_ML;uJp>@5bZlm%&o;y_7A zTLsF6&oAVoh2I7X1_sd1CXhcsvm7wOlDp0OpQ!p8x;= literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o b/hoko-blur/.cxx/cmake/release/armeabi-v7a/CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..ea0e86dc97d467c9d40593851938ffd142fff8b4 GIT binary patch literal 19296 zcmb<-^>JflWMqH=Mg|QA1doB?g)3Nw)dWmwFeo!HGJM#|yk7Su1ONODEE9z$L@+QK z2v1-%xc)pui0s4-oC$;81uf&GDoo1z<7 zW~Sl~Q3giStxjKWv&?jH6P_hLm*Y3%hhS-r$y~2Fn3*ScxN*<)bm5vPG;_sAMoz}p z4Gg>!m|iR@7=lqJJ9iE{#r0mFo|KV&Anf57;g;{)qN24(*b3_SiH z7`R0yFeu#p5%YjyCetj*2@DDnlNpqyCom|;Okhxun!unSJ6Udm?E~)F3|cGp3%fYG zuGsJGCNfWG4uh7lOUMsphhn!K`-R=u<}qr?xg7b-u6p-J$%4n5SbwvvV*bsx`|OXB z1xG%!yU5L8`OU`Q_=CkqZow`rb!6cyNBH!>dH zCT5w*e6z!TC@`#g&CD$6A~BJFrsV8MDJ~a9Dd~xVGgrK3WaMxWoxnAt)#?AY>h-)c z7-w?0@J?WzdH07v1EV4Hj7F#b-+0#Z%mCTMIYWNK-WLq~dtZET`2YRiez)n2jT=^f zXaFZyC;>~ai#MEoDJB3)uac7`peYuTUIXNKq3Km%0)y(03^gWDnq{AG{Rc+_BEYvF@ftf69fMQ&et3aY!f7BG5u!w;NZkO zL1IRu6!%1i*A5JUGMp0wof;UJCW3shkb!F=&jc0&#tEMv@P1_B2Bp@N1O6WvxMsiL z;Q*yna4Ma^pdbfLwMr8h6ci^gC@4(0`;ujz{ev>M-5(kFPwbC#+331szn`1<3^x}B z?SLO@2?=gH_Di^N&SBJ6a8a7`brb7v1{b9%$3C;GD9&X0%^;{a@z`f}H-(vOzZnFb zez4>yOg!|G!IkqiB-P5zP;il(AUngrMRo$)1F0FCTr^yyplMlb#+r|eJUm8>#?3C0 zGn$?D+`aoF<-pyS?9OL@STwXg5SVrMN5cfAxp#lGY>=NUKilYsB!kgUQ30c$(h9dL z7+4%$F(){@Vp8C6mY>Oyz&%4^W`fJvA3g^_AtDJ*yS%d$To?@|IIY+(;3hVUXCA|E zrUr3%`V|4CRFw29G^r~CoT|a;H`q;diqssLS(?(aZb82qemJ@)O}zUfXMx4_^}Gcd|d6q%VR#rT?mi)#k63;&E3r~lu|)^p6@ z_{hk?V!$zhZAOFZ|8E@Y1;A;TXNEG-X}EU-tDA`jgI0yhg&zzHZv9|j;F%C|fo+|L z;%qk&Hv@3V3MyfZz$^w0x7!Q~tgBcjfW$yy%b;O<+ahyc#@&}}GZ;0bE=<_%;ARL` z`#Xctj&&xe)STzU@SFJ)$9{(2Vhz!5XJ0ZLa&kNSl4$~mn=p~%?8%-F&*SyLf7CowNwp)9qiI5R&_!9veK&s;$xqokyu*h*hN5n_N|dVYR- zPHJ&}X;E^jUUGh}eo20QPI5+KW}ZGof0C(bno){LYEoK?v1wA8nTc_Vk$Fl|a-v~U zl97>xrK!1rfrXi&xh6?w=j4>-Di|jlTNUTAL7B_l3A3RT#}ie#{g0mAD@|5Vr&#&0^)(`ERb+^F}e6VMfYkWv#fNOj_Lvcw8LrQ9LPDy1!szzREPEJ8dktPF_5nsX(ALV15m{gp} zkeF1=5Fek%kdp6_UzAyupI4HY1M)jVN`6>sQAuVplZ zkde!fkz3A?npegU@8##|npegEr9eT<5TBKtlUQ8L0HcyJOL7wn7~-??lRznt0Zzw5 zLm?|Z1s=m$@tI(!WW^`v7o`?6B;^)(=B4E`lxL=tWH7|Xm%<_+&d5m3OwTA`C@v|= zOi5)(%P-1JEMZ8?NlY(hfM$Ouumixx6l7MU<`jc#c0L9M21bSe5H*2`fq|K!_5@fQ zMt~$383I8RNS=wIRsbdiqIJO9gFs9emH`U|gD8*=W`^23FewHh1_lNZuzUcBg35!+ zEr=311_lNth&+f212aP)atsVA3=9kg3=9lR47D5}+78S%m=B_(z)C}}FfcGAF@n4V zcat6i0|Uq+CWcy&Ca_^3h80*x#5@KDh9zKTAc(4C0-G-aqI;M?1_gq3FfcHrAq?Vy ziRB^0G+<(73=9mPz;1|4V`5;K0yZTQCfmWlz%T`DUjT@Lx(wtsu!;!?10}!$3=9k) zCxSf2#9%NVM5llaj|Nfi7{PINg8{_&0u~PhQ6P(%8ES7ZfEXam$Pf*pK;8n2<1+gX z#K12MAO;iI>46{$s__dX3_W`^1q;B;XI)))z*pc-F5bYY2V z28fLxK#7vU0jx0^L_sxvz^PFHqVWv_h!F+W7y_c88sES*E@EI{fC^rK3xa&22KIMQ z03$|@dI!qIVA+rZj0_B*SY~7hfNB24z`$SwmIY;BuqY_(Kz1-Pgo61D4B$AM2UZmW zqBJ1RJ-`5BK$OP7lrCUoU|0fH3b*4DBLg_aGcp9~F)=V0f&B;1s347?Qi_oQT*@qg zn2jifK=PpChmj!=L_y_mfP~=~OTh+G%g7K6qM%xyz?FjvHZe%922oIXMA`)@+yE|G z%0c=;Trh@;fm{pbg9xY?yo^B-;{dTi7_Fd;09%bxP=cJm#83+vb6{X#02PBEF=mF^ z10WN?*oc9F!2w!|f@qL~85u%BR024}gFzGsGctsNs62@1Bqj!iHQ+#pM<}QeW&sOD zG%ztRtbj1VwlFX-fFcuQI}<}K-2b5R6e*2b%=)lo7=FNIn5eF)%QIWV0X%+QVhy?%nY?Zz&S7gtT-A(K@}s4T##Z=+%PlLeqaDG+`x(>KonFl zq9g$+R)9F8ff2+2Wl2VcKoA90+yEcl0x1@PC~jc{F(kky2ZAW5;uaLe{~+~C2P25V z22l*6po%--ib2JQ0yw(DE-*5H%LSxDhK-Sd!2~QD;Ks>z_0u;^7#J9~fQ8^SG@~G+DxWYbGoOICG@l@2s5k=y6APoKFf$)F zw-vWFHvvUyoeRxmIyfN~p1n1NjlWCbHA4xwxYaITmG z%Aw&PC2V|xAPR)p_ow64#aq#9?57 z+FJ(WYJ>HzN9Brv69fYT8$>n=#?=8Uo{Y*pgUV$ECkzG#HeIk{3m6yT-!K?g6D*qv z<3eO>U|cn@>~a`a9n9SY<7$9n0TLl#eWI{-5u3G`6bl0bq&WG!G5t3}`1#iF% zs0SG!_yf)b880Zo3JsxpFjpIuyBw7}8I@a)%FTvx8$d=uT-pw@Q^Xr4(*lwa*$v}% zgSj_h+$J#hEsWa-PC86%PzSbwWqnb(*)Z-Ruxvey+YIJThH)2wxyxbP`C#sD7`;5>f@LjHxoN1}ei(NiSn(cI?n_jz7&t33Ft9;<5~wC+TO;<44J9Rkx(v{i z^jdNLGZC3mW!6 z*0M1$h{(dYe+AeX7{uLRTqZ_PnIs+w<1>T#5}+0;s2?Go1Cw9_ONiIQ`0QXlgG3(# z0|Tf}AwCHvBLJ2WUkc+3g82*#todvV3~W`Rw zUBbq|APr8=jLiCMJD?IAzA~&L98R(z)xX#n7&u%Q5NtOV1lxlH%m&p-99}$NHdwun z00SE~9PV4B)~TT8e_)0K%Y(21J8O z4iF8BcMuK1&>^`IKO*mF$-uyn2pR}yVAN+|U~o3lGq7Y}<6?K@VB}=tV&P-pXB1!* zWD;T#VH9N)XO>`;WRzl3VpL-U70dts|Nqazz{0>-!^gwRz`y_>fn#7`0ENF3pGY5L zJ5w8TD@zNj6AwFwOE+5=dnZQ+C#qUd91*J)6p#4SE(f=uK-DB8BjayAUIs?U$^cNm zf$aH*%)I2B(v(!>IR|J8(hp9_*3V1H);BWHGt@J+G_kNWF+ohr6zhZLPV@_kQj}F-iz|zZ^7BjdON)#2>1Km|vbMH zFo0$-LQ67p^fExpIf_eCGV@CGGC)IeS$UZdMtnSU28Dr{0W`&ulA5NM0b;`^J0Mda z;3*>(28Nu}^u*-K_~Me3oXn*7%)Fe;ywqa737$DHWJ%EiWP*u*N4!p0n!#>TAY#meQ&D#)DR#mdF3;KeG%TEKsK>(2s?Ek+pvS_-D$gvS$12DM6Y^qVV-;f-O=A@_VinV3Rn=h?@?({B zXB9H^W>sab@?sTgV--nCXB7-!l`!;7W#!FemGspy&`o9KWG>WW)nrR!< zV?M{gp}?xjHjg#bi&a&R)hdlORF759i`B)8)zOPpg)NXZn7LAqRg_JS)qpL4Ri&9# zJb+c0xk?X2%g<*OWJ_a}U`u3G4P+HzOJfygV=nh%m1O4jVwGU7(9>sC4FHL=wX+I= zf?kAK$ct6Tk2zD1RfJhc4@HoTd1gH*5||$`fF;u4O1zlGyjZo2SoPVwShe(6_4QbV z*}PfxJy}(mlk`}HndS9ZC45;${Mnd$>%G{RKQW}SiZZ8zTp;4bD$1M#($Ac!$1K*w zDq_eg%A5vbvN2Dt*JI^mV?M*6$I8l_+Qh2Jc8!%)kB#{xLsL4F00ScF>~p$nlKl5u}ZOlQxl&T zC;{E6+r?_e#=Mjf%)4C&N<~W&mw6=h>y&dBkERgmoyt0Oek{I3J0Bthmz zMz8?$|2jxAYGZ_@BOyapNi9|(BUV*cR-r6b)kF}9Hyt&xa_Z@^GBDq&OJh}KW8Tlm zv4+)9MM?F&|^}0wp9!g34i4 z1SO~@A`%qyhPoy;=Bte0l%mJRytfV%_7DL-Hs<9J?iI!~lq7~V-LY!)oV$12LqqsJ_k#wwx9Dq;jmZC)TA zCv&_Pn-?o98*@4+rRlMjoQhPu(Y0aW>{3AZt46^q7Az zda-h{rL)arZm$C;hrb{JeYPg%CP=(DF?q3a`m#!-voZgwZDLhmWA0?qW0f*uWBy#L z$I1)hda=ssu=4t_a%Qnga742)e}Jf)%%sOEVZ_G#5~6N06OuYs4tqA{XSGeNjBLzv zn3~v_pVZD{;$lEruLo(9F))~dOI!$#h2i6WcW9RsA|k{9;&Z^;c@Tam8Xq)SfvkQl zn*0tl{y{YUF*H7C>=W6%D`@if(D={L_^;9UAJO=bS_WhT#6O(yFo5u-(fF!pe9-g@ zNH+rmL_KIK2AL0<#-EDDpNqy{hQ{B7#@~g;KZM3Vg~q>t#=nime}cw;jmH0k#{Y@N z|BuEOgpP)R$^%(u$h;aPeep6l!_|UBm>KL)_#6yMD12U!A~Z*S3#X!5F3O+{P&iy0U|6LTPQ3_#{&LEOt#1et-xFfRsbUM$qSY{-Zd zS1JPo*xWP*hB%P9nUFaxt^x)I(8xPiCS+oZtB`@=2uMDifdMp4#+3(2!wLBi_rl#B z2el_2BF+T$2Z#nuQGjSre1d4u!~%#0&Dw!zZP1K+6axcj!~?_!%`|{$XQ()6ssY3Y zt)BqVu~6|uC=CiikT__e5s0pZiZ?=OkbgkppxF};Jr^pz5K4ol7C_>lNfZzbn$QE$ zpz&`I4Vt`Bzk>2X<6j{DKPaD-k%0lk=Y-M%P+9~^%Rp(+ z^e#vpX!Zg`8$-oG(-$DVJCqNazX0*0p?uH+FAzTs$_GtofcTYAK4^Lx#0SkhgJ{qU z2Z){ll?P36fcT(v1){e=#X)T|5Pv_Ee;7)ifzqJ17)bs)lz$saKY`LOpfo67gVcS7 z@lZ`Atx|4NCVz>B&%f7L=X`r9sm=ApM)6{M}G`Ka@TJr9o{W zkUCHs2SkI)FAxoC!+_`~P<5}N^m{1%4NCul(#*_|^urFNLGwr;{ZddqsGb1v)u4P` zC=F^`fW)n!d{F%Y;=4lmo=_Sz5d{*DgYwg$bQY8@hSKFwx(-S=L21y;6-fVdD1Sbb zUJRwzK6E=TI6n!v>Q71LZTb zGBAMn>`)ps46KHxOSR$~S}3R!|x=dj^vChw{UqbQF{Z&AWl*^Pzmuv>b@v z4CRAn?LhqLP(El<55!*$<%6cYns{xK+h3QB|K=Ropzp?uH;9fr38iJBvD>3dKbG(`qd{|UkqmrB$G`29yR(ErQh9Liuh`+6zhtLg`Q_4Vrrdsn3G)3!!u= zl&*o&4Nw|1ISEof8Oomnr58YH&>R3rel?U2n!N<^4?y`Rq4ZfOeFaM2fYPApO_2Jx zQ2sY4{R>JnazOmg3Z+5wpCI*8P`)yhR)^AhP}&GegCfNFI04N;-rK6#AJd_5_ zpn}wwK>4*$x)DluKU(xAy( zko-j`A2hcM;y;D*K~ujV{!b_$G`kDp^KvmTfN0S4E{Ily@-?8e4wN>A(&kVaH2(`y z?*-+9=6^x_SSTMf?F-@;K>46)Ul6|;$_GvMg80**e9&Ysh`$ob2Tjv5B{G0l>M${Z zdWH-POw0@npp~*rDUfMiCKkxbf2Je`25|eBlYzk))ShHxU;y=-nAjN@!0luX1_n2f zI4c7KxP8pazyNL+^Dr>vfW)~O7(hE4n79}i>Op)y28QV%njf;vpGkm$VJ(O+#K5o> zL<=%790bwA3=Bs>vxw2hm~-450a6rUV9tPawV|1H)esoxlJd zN@S8^VBi6@_YxQw!0laW1_o&;UmiruFfizXXaxoaYY;8Zz~Bj@;X1_scE z0+7E!Yblwu85o#B?X(0226hmw!@vMq_X&~*tw&|jWncieV-pw{Kx2hWdJGJpej7;M z1f*V{fx#X`ConKLgJ=T=20sv;z`zg$q74}sVnK8Q0|U4nYsA0+T7wJHUjPy}W?-lW z(FqI;^&r}WfuRdTConMdfoM|(2GE!wNc~(8-;4pg78%3`typFH@Y0Jmc; z7#NO0`KLg%B?H4%5S_rla1%sZF))DJtqBYaFF<^21_scW8j}qq4TI7vC#YSPz`!5^ zqGK2sKx1M|;tUL+u`rOmnjmpW1_l!loxs3g0ivZCz~dnxdC<5rlQaWE5J)_MfdMpz z#U#VP02-SD$)|$E6&M&mV^JV}35YMxz)%mO6BrnpL9`qLLm!AvU|^U8qGcHvKx0dw z^t1xRPhemGw@Z~67{KjOkpDsA$_xz0Ky(5F18D4s$(DiPDwKZ{M5{6|fX0YG_Pzk| zRTvmPgXjbXhVLNS0<`#&fdM4X25O&~GBAL~fIxgv5Z{i0K>W?=9I(FqI;fgoCofguJ&ConK1fM^2-hHMa>z`&3XqV*XV zsz7uC14A8%He_Jv1kni$480)QgnS)GcbVLrwI%U;P$Bz1H(3ucme|h zxSguUzyNNaCNMC7+o!q=3|FA?;C8AGw0)YuzyNNanlUhZg35mb(dG;cjG%U00s{jp zh*o1@5CGAj^Z}wR85rb2bOHl|GKjWfV9*262@DKIAljON!4^c@FfjOl=p+V)U=W?a zzz_$b;}{q+K(qt{1Gs&fz`#%p;@dMY)Pd*(28JdO?Zm*)3!)Pk7$$;fR|bYTAUc78 zVF8HtU|;~ZR}&Z*)`R%o3=F$KbOHmzJ`nB2z;F^oConLa1<{@i3^zb@0t3Sx5beXj z@Ek-ZFfhCZ(V+|s-#~N%1H&&6Eych9ZoeilFmQp|ancM7Vjwz>fk7TbgZvMoWf>U2 z?Nv~E0P*D+7#u)!90P+Vh)!T&0Jm4=7#Jd<{8$jJz`#%fq8%9+szI~^149dlc41(c z0HU247-oWKcLs)KAli+AVH1cBVPMz?qJ0?{PJ!qE28L@OI*@_k5r__AU;wvAgBck9 zgZTao3|ydgmmlUh4`{>@)UN@p{RGjV5kgQq0<_p0M1#kDVj%n0Kz#7p*(e4E&{`^x zdJ9nf5yQX$T51iF2kpQB)tjJkDi94eFPVV>Y+e*({E8`=fx!c+uK+|RGcbTQO@P#c zHc)}g1*iKM1_p5Z88p}x9}iw*6JMGM+DQrHfjN39sY#{j@rg-EMX6;BdL^k9B@Cdg zy}7A*C8#?G<4f~$@{_XzAbSU)YcC+13geL^^c;hH^%6@;iZYW*OHzv&^omk*pq3OR z=B2|#K&nzJGE*wRR_djoZ#D&M1Gxr^6hv=HViG>R5JgB9pln`6HXc<1q7TV%RB4cJ zAWGmyQ?L;h;S5R)fw%|mWJ-*Jq=w>>A_i;=SfKHko0yyl+Kmc!JwykXkD4aZQ%k^` zP2=N>LEER}lQXj8(-Jdt81(Y;OH%dR{X%uY638h8v>XPRpH`HZo63+@l$y$bY)pD- zVo?eMayrh>fDri?yom&%YJn32g9p;sJZ#)v3p)M|Y9E7C zgUSUE4a2ahl$%)8%|RNAhcQ9pxzKf=U?YC$F))D27|<>gko6$*KxNi>sCh7b7nmSz zbFe1ZI(!BOhRG0h1)y<#klY<62JkEk$Se>aWFCm_XJCM=(Fburdvx^~z_TSFdqI8! zsRP+-2A%H!iGh@Y+Et*r1`r#BVeS!TL^aPtAK?#>IWY5dpyt8!O<~3E570VIMg|7B zKS1>#$Q%#`*$XlcM1%G~A%|ZBl0Uei;R4bFY8Qjz5ay2+tdKbzkQpEhGY`}*M>cPU zJ_C50Bq&@!vr!;*AoK2{`J;yoyFdIP>frvE!3K#BkXgv~dZUHk3nYJl=7C`LYB7QK zH$(PRgY++8V_=W~NrE_#xCbqKWB3GB2Nh=6!NmZ^Fg_?OKy1+5GqQg{o3%lEV?h1| z&8~rr2Kg6MpTYEi^c9FQFhn5Bxe zh7@n0`4N~Nkp2gzVUQdMgT~=OG)N4Dt>i%@0>k7$Q)kQ&CxInF>Oi~M z!5nD3f!Lt&dYB#%zeJvaVFri+#UOuxn4s}}WdBAuLDB@szo1!8kUCJjEk=tE9t8#l x&=?oU3=oFdHJ=GJ|8_Vb$^%fF2xcBDsQ&=c2*o?p85kVcAz_#bjWK$OD-tT%V+ri|Nnm<1_lQGjQreG{lwhN68(ar{H)aEl45FGxPMb@-k7(V_;zT_y7O@07}fu%uCKGO-V(Vo5Aq+|Ns9vsAf9m zr4;37rsxN!Wb5apWa}Fl=o#vnTAEl`nwaR9BB6|%FEQtVEFU@|Nj!I+n1A>WM-nDoRgTB zu5Y1dpl1%ZwYVfDu_#?Ht+0)NgQJf>*C5{{p6I?v|?~LfB*mge+^yy znh4DzWvNBQnfZB{dFdbre51Sli3ORuIjLo-IUws9zW)FJzlSdVPs%JQ)=y6@iBCx_ z%S=v+k6w&tR+H{r~^Jh3a_>clwHt zhj=XayBWmBsZ}D6!EWV67SgR z7MR^R`Jlr6)&KwhV;C437#J8BYS{0_GBPkQFflMNfZBvC3=9mc3=9lx3=9nH3=9k$ z3=9mM3=9lh3=9n13=9lB3=9ms3=9l>3=9nX3=9kc3=9l{3=9lH3=9my3=9k+3=9mS z3=9kgc-xlw6`@3T+Rn2QHG~<^DC(RQ&L#~t#6;u&0cV0Ums@kW15tS*z#ninT44y*m7N1 z_Dn3!g*oIA-Ri@{;#}SI)V$Q9%w(A53=9kp2gLr&yb|4<95WNWj0bdU|KW%SP&1(* zwJ0Ya(jLD5|Nnnbfr-@rrBUA!IX+MwagT0s0#26t1^LC974fi~!N72r&Uq5jTF}e5 zLuY>{=jRq==A;(EyndT*Z3IZT!|VqYz_$iEAD|_IoB#j+pMYAY(kLI`$d^d&i8nR^ z1rfuI0m++44$;eCxK6h;3Mv!yp`Aon3T0rpMqm4jQ&Y1+12e@XiFx22)K$9W5wQP@ zONvU9OXAZqb5iv(uF%bHM0+eJGYOpbF4MeB%*jtq%t0Ol1Y3QHo^3&}jSLJI>1JnQ z4#?M_0KP!;@P#$7#J9=85kIB7#J9Aq2qv{@j%enB1jL;x#r-K#N=%B5kUrqgOrX5Vlnr? z|Ns9ZK>i|k9vjwNKsP&sfnh&1e(j*~YtO*I;4qBi7Zk6c_yvvkg30%4^7GtY~zH`vMV>SBttKQVK>d~1vk;) z{SBzK47=#IwgO_~PI~w0kmdq+&?Jm;*AFnOx6`dX2(yuaVH-{SiY*;O+Ji8gx6-X0 z2JY8E25VrJGcYi0p?CTM4Wq`F6eVVs6mO0|SFM0|NtS{h%)c1A`v}1A{*U0|RLNA95Q40IAWEumAu6 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/x86/.ninja_log b/hoko-blur/.cxx/cmake/release/x86/.ninja_log new file mode 100644 index 0000000000..9775cef1e7 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/.ninja_log @@ -0,0 +1,6 @@ +# ninja log v5 +6 490 0 CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o 43f9bd48df4f3c1a +8 596 0 CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o a97c99ee5a68eff4 +7 905 0 CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o 4c5dfd51ceeb76ee +16 1018 0 CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o 7c318d68358137ba +1018 1114 0 /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/x86/libhoko_blur.so 5226133d5eba5907 diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeCache.txt b/hoko-blur/.cxx/cmake/release/x86/CMakeCache.txt new file mode 100644 index 0000000000..dab83ebd0b --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/CMakeCache.txt @@ -0,0 +1,331 @@ +# This is the CMakeCache file. +# For build in directory: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 +# It was generated by CMake: /home/amit/Android/Sdk/cmake/3.6.4111459/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=/home/amit/Android/Sdk/ndk/20.1.5948944 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-13 + +//No help, variable specified on the command line. +ANDROID_TOOLCHAIN:UNINITIALIZED=clang + +//Archiver +CMAKE_AR:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-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(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING=Release + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING=-std=c++11 -frtti -fexceptions + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//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 compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//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 release minsize 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 Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//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=/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/x86 + +//Path to a program. +CMAKE_LINKER:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ld + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-objdump + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Hoko_blur + +//Ranlib +CMAKE_RANLIB:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ranlib + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info 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. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-strip + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/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 +Hoko_blur_BINARY_DIR:STATIC=/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 + +//Value Computed by CMake +Hoko_blur_SOURCE_DIR:STATIC=/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni + +//Path to a library. +graphics-lib:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/libjnigraphics.so + +//Dependencies for the target +hoko_blur_LIB_DEPENDS:STATIC=general;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/liblog.so;general;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/libjnigraphics.so; + +//Path to a library. +log-lib:FILEPATH=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/liblog.so + + +######################## +# INTERNAL cache entries +######################## + +//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=/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/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=6 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=0 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ctest +//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_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_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 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL=Android Gradle +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//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=/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//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 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6 +//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 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 + diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake new file mode 100644 index 0000000000..6c93bca2a1 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake @@ -0,0 +1,67 @@ +set(CMAKE_C_COMPILER "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "8.0") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_static_assert") + +set(CMAKE_C_PLATFORM_ID "") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + +set(CMAKE_AR "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ar") +set(CMAKE_RANLIB "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ranlib") +set(CMAKE_LINKER "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ld") +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_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +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_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_LINK_LIBRARIES "dl;c;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/i686-linux-android/lib;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake new file mode 100644 index 0000000000..3194d22e44 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake @@ -0,0 +1,68 @@ +set(CMAKE_CXX_COMPILER "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "8.0") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;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_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_CXX98_COMPILE_FEATURES "cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "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_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_CXX_PLATFORM_ID "") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + +set(CMAKE_AR "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ar") +set(CMAKE_RANLIB "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ranlib") +set(CMAKE_LINKER "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ld") +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_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +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_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_LINK_LIBRARIES "c++;m;dl;c;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/i686-linux-android/lib;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_C.bin b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..a8fbb576b4a04305e07e5e4378248f007f5b7a47 GIT binary patch literal 8168 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

xaGGBm!fg$K=Nea6AKyC!dgY@ecR~DC~=ISS9 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 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake new file mode 100644 index 0000000000..07f28e3cfe --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.0.0-36-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.0.0-36-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + +include("/home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "i686") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeOutput.log b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000000..1309fafbc2 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeOutput.log @@ -0,0 +1,443 @@ +The target system is: Android - 1 - i686 +The host system is: Linux - 5.0.0-36-generic - x86_64 +Determining if the C compiler works passed with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_cad03" +[1/2] Building C object CMakeFiles/cmTC_cad03.dir/testCCompiler.c.o +[2/2] Linking C executable cmTC_cad03 + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_61f31" +[1/2] Building C object CMakeFiles/cmTC_61f31.dir/CMakeCCompilerABI.c.o +[2/2] Linking C executable cmTC_61f31 +Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn) +Target: i686-none-linux-android16 +Thread model: posix +InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x +Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x +Candidate multilib: .;@m32 +Selected multilib: .;@m32 + "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m elf_i386 -dynamic-linker /system/bin/linker -o cmTC_61f31 /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_61f31.dir/CMakeCCompilerABI.c.o -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtend_android.o + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(i686-linux-android-ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_61f31"] + ignore line: [[1/2] Building C object CMakeFiles/cmTC_61f31.dir/CMakeCCompilerABI.c.o] + ignore line: [[2/2] Linking C executable cmTC_61f31] + ignore line: [Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn)] + ignore line: [Target: i686-none-linux-android16] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x] + ignore line: [Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + ignore line: [Candidate multilib: .] + ignore line: [@m32] + ignore line: [Selected multilib: .] + ignore line: [@m32] + link line: [ "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m elf_i386 -dynamic-linker /system/bin/linker -o cmTC_61f31 /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_61f31.dir/CMakeCCompilerABI.c.o -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtend_android.o] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld] ==> ignore + arg [--sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--hash-style=both] ==> ignore + arg [--enable-new-dtags] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_i386] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker] ==> ignore + arg [-o] ==> ignore + arg [cmTC_61f31] ==> ignore + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtbegin_dynamic.o] ==> ignore + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--exclude-libs] ==> ignore + arg [libgcc.a] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libatomic.a] ==> ignore + arg [--build-id] ==> ignore + arg [--warn-shared-textrel] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--no-undefined] ==> ignore + arg [-znoexecstack] ==> ignore + arg [--gc-sections] ==> ignore + arg [CMakeFiles/cmTC_61f31.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtend_android.o] ==> ignore + remove lib [gcc] + remove lib [gcc] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/i686-linux-android/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [dl;c;dl] + implicit dirs: [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/i686-linux-android/lib;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_c44cb" +[1/2] Building C object CMakeFiles/cmTC_c44cb.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_c44cb + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_f95dd" +[1/2] Building C object CMakeFiles/cmTC_f95dd.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_f95dd + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_9652a" +[1/2] Building C object CMakeFiles/cmTC_9652a.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_9652a + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_b5e8f" +[1/2] Building CXX object CMakeFiles/cmTC_b5e8f.dir/testCXXCompiler.cxx.o +[2/2] Linking CXX executable cmTC_b5e8f + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_e0c1c" +[1/2] Building CXX object CMakeFiles/cmTC_e0c1c.dir/CMakeCXXCompilerABI.cpp.o +[2/2] Linking CXX executable cmTC_e0c1c +Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn) +Target: i686-none-linux-android16 +Thread model: posix +InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x +Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x +Candidate multilib: .;@m32 +Selected multilib: .;@m32 + "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m elf_i386 -dynamic-linker /system/bin/linker -o cmTC_e0c1c /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_e0c1c.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lc++ -Bdynamic -lm -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtend_android.o + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(i686-linux-android-ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_e0c1c"] + ignore line: [[1/2] Building CXX object CMakeFiles/cmTC_e0c1c.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [[2/2] Linking CXX executable cmTC_e0c1c] + ignore line: [Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn)] + ignore line: [Target: i686-none-linux-android16] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x] + ignore line: [Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + ignore line: [Candidate multilib: .] + ignore line: [@m32] + ignore line: [Selected multilib: .] + ignore line: [@m32] + link line: [ "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m elf_i386 -dynamic-linker /system/bin/linker -o cmTC_e0c1c /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_e0c1c.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lc++ -Bdynamic -lm -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtend_android.o] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld] ==> ignore + arg [--sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--hash-style=both] ==> ignore + arg [--enable-new-dtags] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_i386] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker] ==> ignore + arg [-o] ==> ignore + arg [cmTC_e0c1c] ==> ignore + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtbegin_dynamic.o] ==> ignore + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--exclude-libs] ==> ignore + arg [libgcc.a] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libatomic.a] ==> ignore + arg [--build-id] ==> ignore + arg [--warn-shared-textrel] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--no-undefined] ==> ignore + arg [-znoexecstack] ==> ignore + arg [--gc-sections] ==> ignore + arg [CMakeFiles/cmTC_e0c1c.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-Bstatic] ==> ignore + arg [-lc++] ==> lib [c++] + arg [-Bdynamic] ==> ignore + arg [-lm] ==> lib [m] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtend_android.o] ==> ignore + remove lib [gcc] + remove lib [gcc] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/i686-linux-android/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [c++;m;dl;c;dl] + implicit dirs: [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/i686-linux-android/lib;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_e1c4b" +[1/2] Building CXX object CMakeFiles/cmTC_e1c4b.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_e1c4b + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_0a790" +[1/2] Building CXX object CMakeFiles/cmTC_0a790.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_0a790 + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_95b8e" +[1/2] Building CXX object CMakeFiles/cmTC_95b8e.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_95b8e + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/TargetDirectories.txt b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000000..e25dc524b6 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/edit_cache.dir +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/rebuild_cache.dir +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/hoko_blur.dir diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/cmake.check_cache b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000000..3dccd73172 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/feature_tests.bin b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..7ace14d2031ec9cfae9515ae9ba18dec19ceea2f GIT binary patch literal 8020 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 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/feature_tests.c b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/feature_tests.c new file mode 100644 index 0000000000..90a87b17ad --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/feature_tests.cxx b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/feature_tests.cxx new file mode 100644 index 0000000000..a9b4791caf --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_aggregate_nsdmi) +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alias_templates) +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_attributes) +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_auto_type) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_binary_literals) +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_constexpr) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_contextual_conversions) +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_decltype) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_decltype_incomplete_return_types) +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_default_function_template_args) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_delegating_constructors) +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_deleted_functions) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_explicit_conversions) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_inheriting_constructors) +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_lambdas) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_init_captures) +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_local_type_template_args) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_noexcept) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_nonstatic_member_init) +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_nullptr) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_range_for) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_raw_string_literals) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_reference_qualified_functions) +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_relaxed_constexpr) +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_return_type_deduction) +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_rvalue_references) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_static_assert) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_strong_enums) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 199711L +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_thread_local) +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_trailing_return) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_unicode_literals) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_unrestricted_unions) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_user_literals) +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_variable_templates) +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_variadic_templates) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..5009dd1c5080aa86b1ec8323b8873e663ff37ae8 GIT binary patch literal 58348 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 I+y_dl07fxKZU6uP literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..9c12a0adc5b29531535c107beacdf2e7f1ad6345 GIT binary patch literal 14452 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 V3=A7UbqE6k186}tNF6Ax0st+TI|={* literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..aab80e1590030dda7f9d29c6bd7ce82fcea6dc52 GIT binary patch literal 18156 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 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o b/hoko-blur/.cxx/cmake/release/x86/CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..011a6f10b8005b9459eca3fce69ce658c4dcd0dc GIT binary patch literal 18776 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 ZnA<=`v}iFfG=R!y1_p*$s5(&E2LRy?Ch!0N literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/release/x86/android_gradle_build.json b/hoko-blur/.cxx/cmake/release/x86/android_gradle_build.json new file mode 100644 index 0000000000..f2ec4575ff --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/android_gradle_build.json @@ -0,0 +1,59 @@ + +{ + "buildFiles" : + [ + "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt" + ], + "cleanCommands" : + [ + "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 --target clean" + ], + "cppFileExtensions" : [ "cpp" ], + "libraries" : + { + "hoko_blur-Release-x86" : + { + "abi" : "x86", + "artifactName" : "hoko_blur", + "buildCommand" : "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 --target hoko_blur", + "buildType" : "release", + "files" : + [ + + { + "flags" : " --target=i686-none-linux-android16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BlurUtil.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86" + }, + + { + "flags" : " --target=i686-none-linux-android16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/StackBlurFilter.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86" + }, + + { + "flags" : " --target=i686-none-linux-android16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/GaussianBlurFilter.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86" + }, + + { + "flags" : " --target=i686-none-linux-android16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BoxBlurFilter.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86" + } + ], + "output" : "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/x86/libhoko_blur.so", + "toolchain" : "5697535246732911383" + } + }, + "toolchains" : + { + "5697535246732911383" : + { + "cCompilerExecutable" : "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang", + "cppCompilerExecutable" : "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" + } + } +} diff --git a/hoko-blur/.cxx/cmake/release/x86/android_gradle_build_hoko_blur_x86.command.txt b/hoko-blur/.cxx/cmake/release/x86/android_gradle_build_hoko_blur_x86.command.txt new file mode 100644 index 0000000000..fc61052d84 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/android_gradle_build_hoko_blur_x86.command.txt @@ -0,0 +1,8 @@ +Executable : /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +arguments : +--build +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 +--target +hoko_blur +jvmArgs : + diff --git a/hoko-blur/.cxx/cmake/release/x86/android_gradle_build_hoko_blur_x86.stderr.txt b/hoko-blur/.cxx/cmake/release/x86/android_gradle_build_hoko_blur_x86.stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/hoko-blur/.cxx/cmake/release/x86/android_gradle_build_hoko_blur_x86.stdout.txt b/hoko-blur/.cxx/cmake/release/x86/android_gradle_build_hoko_blur_x86.stdout.txt new file mode 100644 index 0000000000..964c94da09 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/android_gradle_build_hoko_blur_x86.stdout.txt @@ -0,0 +1 @@ +ninja: no work to do. diff --git a/hoko-blur/.cxx/cmake/release/x86/android_gradle_build_mini.json b/hoko-blur/.cxx/cmake/release/x86/android_gradle_build_mini.json new file mode 100644 index 0000000000..7d4e9fd599 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/android_gradle_build_mini.json @@ -0,0 +1,16 @@ +{ + "buildFiles": [ + "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt" + ], + "cleanCommands": [ + "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 --target clean" + ], + "libraries": { + "hoko_blur-Release-x86": { + "artifactName": "hoko_blur", + "buildCommand": "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 --target hoko_blur", + "abi": "x86", + "output": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/x86/libhoko_blur.so" + } + } +} \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/release/x86/android_gradle_generate_cmake_ninja_json_x86.command.txt b/hoko-blur/.cxx/cmake/release/x86/android_gradle_generate_cmake_ninja_json_x86.command.txt new file mode 100644 index 0000000000..4804ec5795 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/android_gradle_generate_cmake_ninja_json_x86.command.txt @@ -0,0 +1,17 @@ +Executable : /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +arguments : +-H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni +-B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 +-DANDROID_ABI=x86 +-DANDROID_PLATFORM=android-24 +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/x86 +-DCMAKE_BUILD_TYPE=Release +-DANDROID_NDK=/home/amit/Android/Sdk/ndk/20.1.5948944 +-DCMAKE_CXX_FLAGS=-std=c++11 -frtti -fexceptions +-DCMAKE_TOOLCHAIN_FILE=/home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja +-GAndroid Gradle - Ninja +-DANDROID_PLATFORM=android-13 +-DANDROID_TOOLCHAIN=clang +jvmArgs : + diff --git a/hoko-blur/.cxx/cmake/release/x86/android_gradle_generate_cmake_ninja_json_x86.stderr.txt b/hoko-blur/.cxx/cmake/release/x86/android_gradle_generate_cmake_ninja_json_x86.stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/hoko-blur/.cxx/cmake/release/x86/android_gradle_generate_cmake_ninja_json_x86.stdout.txt b/hoko-blur/.cxx/cmake/release/x86/android_gradle_generate_cmake_ninja_json_x86.stdout.txt new file mode 100644 index 0000000000..5f8958d4db --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/android_gradle_generate_cmake_ninja_json_x86.stdout.txt @@ -0,0 +1,16 @@ +-- android-13 is unsupported. Using minimum supported version 16. +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Detecting C compile features +-- Detecting C compile features - done +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +-- Detecting CXX compiler ABI info +-- Detecting CXX compiler ABI info - done +-- Detecting CXX compile features +-- Detecting CXX compile features - done +-- Configuring done +-- Generating done +-- Build files have been written to: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 diff --git a/hoko-blur/.cxx/cmake/release/x86/build.ninja b/hoko-blur/.cxx/cmake/release/x86/build.ninja new file mode 100644 index 0000000000..c8ec9be76c --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/build.ninja @@ -0,0 +1,147 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.6 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Hoko_blur +# Configuration: Release +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include rules.ninja + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 && /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 +build edit_cache: phony CMakeFiles/edit_cache.util + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 && /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake -H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni -B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 +build rebuild_cache: phony CMakeFiles/rebuild_cache.util +# ============================================================================= +# Object build statements for SHARED_LIBRARY target hoko_blur + +build CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BlurUtil.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BlurUtil.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir +build CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/StackBlurFilter.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/StackBlurFilter.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir +build CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/GaussianBlurFilter.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/GaussianBlurFilter.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir +build CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BoxBlurFilter.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BoxBlurFilter.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target hoko_blur + + +############################################# +# Link the shared library /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/x86/libhoko_blur.so + +build /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/x86/libhoko_blur.so: CXX_SHARED_LIBRARY_LINKER__hoko_blur CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o | /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/liblog.so /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/libjnigraphics.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O2 -DNDEBUG + LINK_FLAGS = -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -static-libstdc++ -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -Wl,-z,noexecstack + LINK_LIBRARIES = /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/liblog.so /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/libjnigraphics.so -latomic -lm + OBJECT_DIR = CMakeFiles/hoko_blur.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libhoko_blur.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/x86/libhoko_blur.so + TARGET_PDB = hoko_blur.so.dbg +# ============================================================================= +# Target aliases. + +build hoko_blur: phony /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/x86/libhoko_blur.so +build libhoko_blur.so: phony /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/x86/libhoko_blur.so +# ============================================================================= +# Folder targets. + +# ============================================================================= +# ============================================================================= +# Built-in targets + + +############################################# +# The main all target. + +build all: phony /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/x86/libhoko_blur.so + +############################################# +# Make the all target the default. + +default all + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompilerABI.c /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompilerABI.cpp /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCommonLanguageInclude.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompileFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompilerABI.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeFindBinUtils.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeGenericSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeLanguageInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeParseImplicitLinkInfo.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystem.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInitialize.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCompilerCommon.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/GNU.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Internal/FeatureTesting.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Android.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Linux.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/UnixPaths.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/platforms.cmake /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt CMakeCache.txt CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx + pool = console + +############################################# +# A missing CMake input file is not an error. + +build /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompilerABI.c /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompilerABI.cpp /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCommonLanguageInclude.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompileFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompilerABI.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeFindBinUtils.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeGenericSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeLanguageInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeParseImplicitLinkInfo.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystem.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInitialize.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCompilerCommon.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/GNU.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Internal/FeatureTesting.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Android.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Linux.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/UnixPaths.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/platforms.cmake /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt CMakeCache.txt CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx: phony + +############################################# +# Clean all the built files. + +build clean: CLEAN + +############################################# +# Print all primary targets available. + +build help: HELP diff --git a/hoko-blur/.cxx/cmake/release/x86/build_command.txt b/hoko-blur/.cxx/cmake/release/x86/build_command.txt new file mode 100644 index 0000000000..4804ec5795 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/build_command.txt @@ -0,0 +1,17 @@ +Executable : /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +arguments : +-H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni +-B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 +-DANDROID_ABI=x86 +-DANDROID_PLATFORM=android-24 +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/x86 +-DCMAKE_BUILD_TYPE=Release +-DANDROID_NDK=/home/amit/Android/Sdk/ndk/20.1.5948944 +-DCMAKE_CXX_FLAGS=-std=c++11 -frtti -fexceptions +-DCMAKE_TOOLCHAIN_FILE=/home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja +-GAndroid Gradle - Ninja +-DANDROID_PLATFORM=android-13 +-DANDROID_TOOLCHAIN=clang +jvmArgs : + diff --git a/hoko-blur/.cxx/cmake/release/x86/build_model.json b/hoko-blur/.cxx/cmake/release/x86/build_model.json new file mode 100644 index 0000000000..f92828a659 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/build_model.json @@ -0,0 +1,74 @@ +{ + "variant": { + "module": { + "rootBuildGradleFolder": "/home/amit/projects/BlissLauncher", + "sdkFolder": "/home/amit/Android/Sdk", + "isNativeCompilerSettingsCacheEnabled": false, + "isBuildOnlyTargetAbiEnabled": true, + "splitsAbiFilterSet": [], + "intermediatesFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates", + "gradleModulePathName": ":hoko-blur", + "moduleRootFolder": "/home/amit/projects/BlissLauncher/hoko-blur", + "makeFile": "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt", + "buildSystem": "CMAKE", + "compilerSettingsCacheFolder": "/home/amit/projects/BlissLauncher/.cxx", + "cxxFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx", + "ndkFolder": "/home/amit/Android/Sdk/ndk/20.1.5948944", + "ndkVersion": "20.1.5948944", + "ndkSupportedAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkDefaultAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "cmakeToolchainFile": "." + }, + "buildSystemArgumentList": [ + "-DANDROID_PLATFORM\u003dandroid-13", + "-DANDROID_TOOLCHAIN\u003dclang" + ], + "cFlagList": [], + "cppFlagsList": [ + "-std\u003dc++11 -frtti -fexceptions" + ], + "variantName": "release", + "soFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/lib", + "objFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj", + "jsonFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release", + "gradleBuildOutputFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release", + "isDebuggableEnabled": false, + "validAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86" + ], + "buildTargetSet": [] + }, + "abi": "X86", + "abiPlatformVersion": 24, + "cxxBuildFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86", + "jsonFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/android_gradle_build.json", + "gradleBuildOutputFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/x86", + "objFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/release/obj/x86", + "buildCommandFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/build_command.txt", + "buildOutputFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/build_output.txt", + "modelOutputFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/build_model.json", + "cmake": { + "cmakeListsWrapperFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/x86/CMakeLists.txt", + "toolchainWrapperFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/x86/android_gradle_build.toolchain.cmake", + "buildGenerationStateFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/x86/build_generation_state.json", + "cacheKeyFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/x86/compiler_cache_key.json", + "compilerCacheUseFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/x86/compiler_cache_use.json", + "compilerCacheWriteFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/x86/compiler_cache_write.json", + "toolchainSettingsFromCacheFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/release/x86/compiler_settings_cache.cmake", + "cmakeWrappingBaseFolder": "." + }, + "jsonGenerationLoggingRecordFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/json_generation_record.json", + "compileCommandsJsonFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/compile_commands.json" +} \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/release/x86/build_output.txt b/hoko-blur/.cxx/cmake/release/x86/build_output.txt new file mode 100644 index 0000000000..1dc283e130 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/build_output.txt @@ -0,0 +1,16 @@ +-- android-13 is unsupported. Using minimum supported version 16. +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Detecting C compile features +-- Detecting C compile features - done +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +-- Detecting CXX compiler ABI info +-- Detecting CXX compiler ABI info - done +-- Detecting CXX compile features +-- Detecting CXX compile features - done +-- Configuring done +-- Generating done +-- Build files have been written to: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/release/x86/cmake_install.cmake b/hoko-blur/.cxx/cmake/release/x86/cmake_install.cmake new file mode 100644 index 0000000000..844804c54b --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/cmake_install.cmake @@ -0,0 +1,44 @@ +# Install script for directory: /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni + +# 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 "Release") + 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 "1") +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 "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/hoko-blur/.cxx/cmake/release/x86/json_generation_record.json b/hoko-blur/.cxx/cmake/release/x86/json_generation_record.json new file mode 100644 index 0000000000..2c208bf0e2 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/json_generation_record.json @@ -0,0 +1,14 @@ +[ + { + "level": "INFO", + "message": "Start JSON generation. Platform version: 24 min SDK version: x86" + }, + { + "level": "INFO", + "message": "JSON \u0027/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86/android_gradle_build.json\u0027 was up-to-date" + }, + { + "level": "INFO", + "message": "JSON generation completed without problems" + } +] \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/release/x86/rules.ninja b/hoko-blur/.cxx/cmake/release/x86/rules.ninja new file mode 100644 index 0000000000..a5f9d74d57 --- /dev/null +++ b/hoko-blur/.cxx/cmake/release/x86/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.6 + +# 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: Hoko_blur +# Configuration: Release +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for compiling CXX files. + +rule CXX_COMPILER__hoko_blur + depfile = $DEP_FILE + deps = gcc + command = /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $IN_ABS + description = Building CXX object $out + + +############################################# +# Rule for linking CXX shared library. + +rule CXX_SHARED_LIBRARY_LINKER__hoko_blur + command = $PRE_LINK && /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake -H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni -B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/release/x86 + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja -t clean + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja -t targets + description = All primary targets available: + diff --git a/hoko-blur/.cxx/ndk_locator_record.json b/hoko-blur/.cxx/ndk_locator_record.json new file mode 100644 index 0000000000..5ce0f85928 --- /dev/null +++ b/hoko-blur/.cxx/ndk_locator_record.json @@ -0,0 +1,37 @@ +{ + "ndkFolder": "/home/amit/Android/Sdk/ndk/20.1.5948944", + "messages": [ + { + "level": "INFO", + "message": "android.ndkVersion from module build.gradle is not set" + }, + { + "level": "INFO", + "message": "ndk.dir in local.properties is not set" + }, + { + "level": "INFO", + "message": "ANDROID_NDK_HOME environment variable is not set" + }, + { + "level": "INFO", + "message": "sdkFolder is /home/amit/Android/Sdk" + }, + { + "level": "INFO", + "message": "Considering /home/amit/Android/Sdk/ndk-bundle in SDK ndk-bundle folder" + }, + { + "level": "INFO", + "message": "Considering /home/amit/Android/Sdk/ndk/20.1.5948944 in SDK ndk folder" + }, + { + "level": "INFO", + "message": "Rejected /home/amit/Android/Sdk/ndk-bundle in SDK ndk-bundle folder because that location has no source.properties" + }, + { + "level": "INFO", + "message": "No user requested version, choosing /home/amit/Android/Sdk/ndk/20.1.5948944 which is version 20.1.5948944" + } + ] +} \ No newline at end of file diff --git a/hoko-blur/.gitignore b/hoko-blur/.gitignore new file mode 100644 index 0000000000..796b96d1c4 --- /dev/null +++ b/hoko-blur/.gitignore @@ -0,0 +1 @@ +/build diff --git a/hoko-blur/build.gradle b/hoko-blur/build.gradle new file mode 100644 index 0000000000..c3333b5fc9 --- /dev/null +++ b/hoko-blur/build.gradle @@ -0,0 +1,66 @@ +apply plugin: 'com.android.library' + +def isReleaseBuildType = false +gradle.startParameter.taskNames.each({ + String taskNameL = it.toLowerCase() + if (taskNameL.contains("release")) { + isReleaseBuildType = true + } + if (taskNameL.equalsIgnoreCase('uploadArchives')) { + isReleaseBuildType = true + } +}) + +android { + compileSdkVersion rootProject.ext.compileSdkVersion + + defaultConfig { + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0" + + renderscriptTargetApi 27 + renderscriptSupportModeEnabled true + + externalNativeBuild { + cmake { + arguments '-DANDROID_PLATFORM=android-13', '-DANDROID_TOOLCHAIN=clang' + cppFlags "-std=c++11 -frtti -fexceptions" + } + } + externalNativeBuild.cmake.abiFilters = isReleaseBuildType ? ['armeabi-v7a', 'arm64-v8a'] : ['armeabi-v7a', 'arm64-v8a', 'x86'] + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + + debug { + jniDebuggable true + } + } + + lintOptions { + abortOnError false + } + + externalNativeBuild { + cmake { + path 'src/main/jni/CMakeLists.txt' + } + } +} + +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') + testImplementation 'junit:junit:4.12' + implementation "com.android.support:support-annotations:${rootProject.ext.supportLibraryVersion}" +} \ No newline at end of file diff --git a/hoko-blur/proguard-rules.pro b/hoko-blur/proguard-rules.pro new file mode 100644 index 0000000000..a6e4c0bc69 --- /dev/null +++ b/hoko-blur/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /Users/yuxfzju/Library/Android/sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript helper +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/hoko-blur/src/androidTest/java/com/hoko/blur/ApplicationTest.java b/hoko-blur/src/androidTest/java/com/hoko/blur/ApplicationTest.java new file mode 100644 index 0000000000..f1b8f139f5 --- /dev/null +++ b/hoko-blur/src/androidTest/java/com/hoko/blur/ApplicationTest.java @@ -0,0 +1,13 @@ +package com.hoko.blur; + +import android.app.Application; +import android.test.ApplicationTestCase; + +/** + * Testing Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/hoko-blur/src/main/AndroidManifest.xml b/hoko-blur/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..d6d463e2ee --- /dev/null +++ b/hoko-blur/src/main/AndroidManifest.xml @@ -0,0 +1,14 @@ + + + + + + + + diff --git a/hoko-blur/src/main/java/com/hoko/blur/HokoBlur.java b/hoko-blur/src/main/java/com/hoko/blur/HokoBlur.java new file mode 100644 index 0000000000..6a1521bb5d --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/HokoBlur.java @@ -0,0 +1,30 @@ +package com.hoko.blur; + +import android.content.Context; + +import com.hoko.blur.api.IBlurBuild; +import com.hoko.blur.processor.HokoBlurBuild; + +/** + * Created by yuxfzju on 16/9/7. + */ +public final class HokoBlur { + + public static final int MODE_BOX = 0; + public static final int MODE_GAUSSIAN = 1; + public static final int MODE_STACK = 2; + + public static final int SCHEME_RENDER_SCRIPT = 1001; + public static final int SCHEME_OPENGL = 1002; + public static final int SCHEME_NATIVE = 1003; + public static final int SCHEME_JAVA = 1004; + + public static final int HORIZONTAL = 0; + public static final int VERTICAL = 1; + public static final int BOTH = 2; + + public static IBlurBuild with(Context context) { + return new HokoBlurBuild(context.getApplicationContext()); + } + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/anno/Direction.java b/hoko-blur/src/main/java/com/hoko/blur/anno/Direction.java new file mode 100644 index 0000000000..1b2068a71d --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/anno/Direction.java @@ -0,0 +1,19 @@ +package com.hoko.blur.anno; + +import android.support.annotation.IntDef; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import static com.hoko.blur.HokoBlur.BOTH; +import static com.hoko.blur.HokoBlur.HORIZONTAL; +import static com.hoko.blur.HokoBlur.VERTICAL; + +/** + * Created by yuxfzju on 2017/2/20. + */ + +@IntDef({HORIZONTAL, VERTICAL, BOTH}) +@Retention(RetentionPolicy.SOURCE) +public @interface Direction { +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/anno/Mode.java b/hoko-blur/src/main/java/com/hoko/blur/anno/Mode.java new file mode 100644 index 0000000000..882ed4dd7f --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/anno/Mode.java @@ -0,0 +1,19 @@ +package com.hoko.blur.anno; + +import android.support.annotation.IntDef; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import static com.hoko.blur.HokoBlur.MODE_BOX; +import static com.hoko.blur.HokoBlur.MODE_GAUSSIAN; +import static com.hoko.blur.HokoBlur.MODE_STACK; + +/** + * Created by yuxfzju on 2017/2/9. + */ + +@IntDef({MODE_BOX, MODE_GAUSSIAN, MODE_STACK}) +@Retention(RetentionPolicy.SOURCE) +public @interface Mode { +} \ No newline at end of file diff --git a/hoko-blur/src/main/java/com/hoko/blur/anno/NotThreadSafe.java b/hoko-blur/src/main/java/com/hoko/blur/anno/NotThreadSafe.java new file mode 100644 index 0000000000..fb4ad0819f --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/anno/NotThreadSafe.java @@ -0,0 +1,13 @@ +package com.hoko.blur.anno; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Documented +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.CLASS) +public @interface NotThreadSafe { +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/anno/Scheme.java b/hoko-blur/src/main/java/com/hoko/blur/anno/Scheme.java new file mode 100644 index 0000000000..75bea1a98d --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/anno/Scheme.java @@ -0,0 +1,20 @@ +package com.hoko.blur.anno; + +import android.support.annotation.IntDef; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import static com.hoko.blur.HokoBlur.SCHEME_JAVA; +import static com.hoko.blur.HokoBlur.SCHEME_NATIVE; +import static com.hoko.blur.HokoBlur.SCHEME_OPENGL; +import static com.hoko.blur.HokoBlur.SCHEME_RENDER_SCRIPT; + +/** + * Created by yuxfzju on 2017/2/9. + */ + +@IntDef({SCHEME_RENDER_SCRIPT, SCHEME_OPENGL, SCHEME_NATIVE, SCHEME_JAVA}) +@Retention(RetentionPolicy.SOURCE) +public @interface Scheme { +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/anno/ThreadSafe.java b/hoko-blur/src/main/java/com/hoko/blur/anno/ThreadSafe.java new file mode 100644 index 0000000000..f5db51bcb0 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/anno/ThreadSafe.java @@ -0,0 +1,14 @@ +package com.hoko.blur.anno; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Documented +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.CLASS) +public @interface ThreadSafe { +} + diff --git a/hoko-blur/src/main/java/com/hoko/blur/api/IBlurBuild.java b/hoko-blur/src/main/java/com/hoko/blur/api/IBlurBuild.java new file mode 100644 index 0000000000..8e3a8b2506 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/api/IBlurBuild.java @@ -0,0 +1,48 @@ +package com.hoko.blur.api; + +import android.content.Context; +import android.graphics.Bitmap; +import android.view.View; + +import com.hoko.blur.anno.Mode; +import com.hoko.blur.anno.Scheme; +import com.hoko.blur.processor.BlurProcessor; +import com.hoko.blur.task.AsyncBlurTask; + +import java.util.concurrent.Future; + +public interface IBlurBuild { + IBlurBuild context(Context context); + + IBlurBuild mode(@Mode int mode); + + IBlurBuild scheme(@Scheme int scheme); + + IBlurBuild radius(int radius); + + IBlurBuild sampleFactor(float sampleFactor); + + IBlurBuild forceCopy(boolean isForceCopy); + + IBlurBuild needUpscale(boolean needUpscale); + + IBlurBuild translateX(int translateX); + + IBlurBuild translateY(int translateY); + + IBlurBuild dispatcher(IBlurResultDispatcher dispatcher); + + /** + * Get different types of Blur Processors + */ + BlurProcessor processor(); + + Bitmap blur(Bitmap bitmap); + + Bitmap blur(View view); + + Future asyncBlur(Bitmap bitmap, AsyncBlurTask.Callback callback); + + Future asyncBlur(View view, AsyncBlurTask.Callback callback); + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/api/IBlurProcessor.java b/hoko-blur/src/main/java/com/hoko/blur/api/IBlurProcessor.java new file mode 100644 index 0000000000..d3c19f8e18 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/api/IBlurProcessor.java @@ -0,0 +1,46 @@ +package com.hoko.blur.api; + +import android.graphics.Bitmap; +import android.view.View; + +import com.hoko.blur.task.AsyncBlurTask; + +import java.util.concurrent.Future; + +/** + * Created by yuxfzju on 16/9/8. + */ +public interface IBlurProcessor { + /** + * apply the blur effect to a bitmap + * + * @param bitmap the original bitmap + * @return the blurred bitmap + */ + Bitmap blur(Bitmap bitmap); + + /** + * apply the blur effect to a view + * + * @param view the original view + * @return the bitmap of the blurred view + */ + Bitmap blur(View view); + + /** + * Asynchronously apply the blur effect to a bitmap + * + * @param bitmap the original bitmap + * @param callback task callback + */ + Future asyncBlur(Bitmap bitmap, AsyncBlurTask.Callback callback); + + /** + * Asynchronously apply the blur effect to a view + * + * @param view the original view + * @param callback task callback + */ + Future asyncBlur(View view, AsyncBlurTask.Callback callback); + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/api/IBlurResultDispatcher.java b/hoko-blur/src/main/java/com/hoko/blur/api/IBlurResultDispatcher.java new file mode 100644 index 0000000000..7acd517f5a --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/api/IBlurResultDispatcher.java @@ -0,0 +1,7 @@ +package com.hoko.blur.api; + +import com.hoko.blur.task.BlurResultRunnable; + +public interface IBlurResultDispatcher { + void dispatch(BlurResultRunnable result); +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/api/IFrameBuffer.java b/hoko-blur/src/main/java/com/hoko/blur/api/IFrameBuffer.java new file mode 100644 index 0000000000..0c5dda1c10 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/api/IFrameBuffer.java @@ -0,0 +1,16 @@ +package com.hoko.blur.api; + +/** + * Created by yuxfzju on 2017/1/22. + */ + +public interface IFrameBuffer { + + void create(); + + void bindTexture(ITexture texture); + + void bindSelf(); + + void delete(); +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/api/IProgram.java b/hoko-blur/src/main/java/com/hoko/blur/api/IProgram.java new file mode 100644 index 0000000000..8830e5167f --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/api/IProgram.java @@ -0,0 +1,10 @@ +package com.hoko.blur.api; + +public interface IProgram { + + void create(String vertexShaderCode, String fragmentShaderCode); + + void delete(); + + int id(); +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/api/IRenderer.java b/hoko-blur/src/main/java/com/hoko/blur/api/IRenderer.java new file mode 100644 index 0000000000..eb696f914a --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/api/IRenderer.java @@ -0,0 +1,11 @@ +package com.hoko.blur.api; + + +/** + * Created by yuxfzju on 2017/2/10. + */ +public interface IRenderer { + + void onDrawFrame(T t); + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/api/ITexture.java b/hoko-blur/src/main/java/com/hoko/blur/api/ITexture.java new file mode 100644 index 0000000000..3eefd38459 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/api/ITexture.java @@ -0,0 +1,19 @@ +package com.hoko.blur.api; + +/** + * Created by yuxfzju on 17/1/20. + */ + +public interface ITexture { + + void create(); + + void delete(); + + int id(); + + int width(); + + int height(); + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/filter/BoxBlurFilter.java b/hoko-blur/src/main/java/com/hoko/blur/filter/BoxBlurFilter.java new file mode 100644 index 0000000000..081fda36d3 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/filter/BoxBlurFilter.java @@ -0,0 +1,117 @@ +package com.hoko.blur.filter; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.anno.Direction; + +import static com.hoko.blur.util.MathUtil.clamp; + +/** + * Created by yuxfzju on 2016/7/24. + */ +final class BoxBlurFilter { + + static void doBlur(int[] in, int width, int height, int radius, @Direction int round) { + int[] result = new int[width * height]; + + if (round == HokoBlur.HORIZONTAL) { + boxBlurHorizontal(in, result, width, height, radius); + System.arraycopy(result, 0, in, 0, result.length); + } else if (round == HokoBlur.VERTICAL) { + boxBlurVertical(in, result, width, height, radius); + System.arraycopy(result, 0, in, 0, result.length); + + } else { + boxBlurHorizontal(in, result, width, height, radius); + boxBlurVertical(result, in, width, height, radius); + + } + } + + private static void boxBlurHorizontal(int[] in, int[] out, int width, int height, int radius) { + int widthMinus1 = width - 1; + int tableSize = 2 * radius + 1; + int[] divide = new int[256 * tableSize]; + + // construct a query table from 0 to 255 + for (int i = 0; i < 256 * tableSize; i++) + divide[i] = i / tableSize; + + int inIndex = 0; + + // + for (int y = 0; y < height; y++) { + int ta = 0, tr = 0, tg = 0, tb = 0; // ARGB + + for (int i = -radius; i <= radius; i++) { + int rgb = in[inIndex + clamp(i, 0, width - 1)]; + ta += (rgb >> 24) & 0xff; + tr += (rgb >> 16) & 0xff; + tg += (rgb >> 8) & 0xff; + tb += rgb & 0xff; + } + + int baseIndex = y * width; + for (int x = 0; x < width; x++) { + out[baseIndex + x] = (divide[ta] << 24) | (divide[tr] << 16) | (divide[tg] << 8) | divide[tb]; + + int i1 = x + radius + 1; + if (i1 > widthMinus1) + i1 = widthMinus1; + int i2 = x - radius; + if (i2 < 0) + i2 = 0; + int rgb1 = in[inIndex + i1]; + int rgb2 = in[inIndex + i2]; + + ta += ((rgb1 >> 24) & 0xff) - ((rgb2 >> 24) & 0xff); + tr += ((rgb1 & 0xff0000) - (rgb2 & 0xff0000)) >> 16; + tg += ((rgb1 & 0xff00) - (rgb2 & 0xff00)) >> 8; + tb += (rgb1 & 0xff) - (rgb2 & 0xff); +// outIndex += height; + } + inIndex += width; + } + } + + private static void boxBlurVertical(int[] in, int[] out, int width, int height, int radius) { + int heightMinus1 = height - 1; + int tableSize = 2 * radius + 1; + int[] divide = new int[256 * tableSize]; + + // construct a query table from 0 to 255 + for (int i = 0; i < 256 * tableSize; i++) + divide[i] = i / tableSize; + + for (int x = 0; x < width; x++) { + int ta = 0, tr = 0, tg = 0, tb = 0; // ARGB + + for (int i = -radius; i <= radius; i++) { + int rgb = in[x + clamp(i, 0, height - 1) * width]; + ta += (rgb >> 24) & 0xff; + tr += (rgb >> 16) & 0xff; + tg += (rgb >> 8) & 0xff; + tb += rgb & 0xff; + } + + for (int y = 0; y < height; y++) { // Sliding window computation + out[y * width + x] = (divide[ta] << 24) | (divide[tr] << 16) | (divide[tg] << 8) | divide[tb]; + + int i1 = y + radius + 1; + if (i1 > heightMinus1) + i1 = heightMinus1; + int i2 = y - radius; + if (i2 < 0) + i2 = 0; + int rgb1 = in[x + i1 * width]; + int rgb2 = in[x + i2 * width]; + + ta += ((rgb1 >> 24) & 0xff) - ((rgb2 >> 24) & 0xff); + tr += ((rgb1 & 0xff0000) - (rgb2 & 0xff0000)) >> 16; + tg += ((rgb1 & 0xff00) - (rgb2 & 0xff00)) >> 8; + tb += (rgb1 & 0xff) - (rgb2 & 0xff); + } + } + } + + +} \ No newline at end of file diff --git a/hoko-blur/src/main/java/com/hoko/blur/filter/GaussianBlurFilter.java b/hoko-blur/src/main/java/com/hoko/blur/filter/GaussianBlurFilter.java new file mode 100644 index 0000000000..c418478643 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/filter/GaussianBlurFilter.java @@ -0,0 +1,127 @@ +package com.hoko.blur.filter; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.anno.Direction; + +import static com.hoko.blur.util.MathUtil.clamp; + +/** + * Created by yuxfzju on 16/9/10. + */ +final class GaussianBlurFilter { + + + static void doBlur(int[] in, int width, int height, int radius, @Direction int direction) { + + int[] result = new int[width * height]; + float[] kernel = makeKernel(radius); + + if (direction == HokoBlur.HORIZONTAL) { + gaussianBlurHorizontal(kernel, in, result, width, height); + System.arraycopy(result, 0, in, 0, result.length); + } else if (direction == HokoBlur.VERTICAL) { + gaussianBlurVertical(kernel, in, result, width, height); + System.arraycopy(result, 0, in, 0, result.length); + + } else { + gaussianBlurHorizontal(kernel, in, result, width, height); + gaussianBlurVertical(kernel, result, in, width, height); + } + + + } + + private static void gaussianBlurHorizontal(float[] kernel, int[] inPixels, int[] outPixels, int width, int height) { + int cols = kernel.length; + int cols2 = cols / 2; + + for (int y = 0; y < height; y++) { + int ioffset = y * width; + for (int x = 0; x < width; x++) { + float r = 0, g = 0, b = 0; + int moffset = cols2; + for (int col = -cols2; col <= cols2; col++) { + float f = kernel[moffset + col]; + + if (f != 0) { + int ix = x + col; + if (ix < 0) { + ix = 0; + } else if (ix >= width) { + ix = width - 1; + } + int rgb = inPixels[ioffset + ix]; + r += f * ((rgb >> 16) & 0xff); + g += f * ((rgb >> 8) & 0xff); + b += f * (rgb & 0xff); + } + } + int outIndex = ioffset + x; + int ia = (inPixels[outIndex] >> 24) & 0xff; + int ir = clamp((int) (r + 0.5), 0, 255); + int ig = clamp((int) (g + 0.5), 0, 255); + int ib = clamp((int) (b + 0.5), 0, 255); + outPixels[outIndex] = (ia << 24) | (ir << 16) | (ig << 8) | ib; + } + } + } + + private static void gaussianBlurVertical(float[] kernel, int[] inPixels, int[] outPixels, int width, int height) { + int cols = kernel.length; + int cols2 = cols / 2; + for (int x = 0; x < width; x++) { + int ioffset = x; + for (int y = 0; y < height; y++) { + float r = 0, g = 0, b = 0; + int moffset = cols2; + for (int col = -cols2; col <= cols2; col++) { + float f = kernel[moffset + col]; + + if (f != 0) { + int iy = y + col; + if (iy < 0) { + iy = 0; + } else if (iy >= height) { + iy = height - 1; + } + int rgb = inPixels[ioffset + iy * width]; + r += f * ((rgb >> 16) & 0xff); + g += f * ((rgb >> 8) & 0xff); + b += f * (rgb & 0xff); + } + } + int outIndex = ioffset + y * width; + int ia = (inPixels[outIndex] >> 24) & 0xff; + int ir = clamp((int) (r + 0.5), 0, 255); + int ig = clamp((int) (g + 0.5), 0, 255); + int ib = clamp((int) (b + 0.5), 0, 255); + outPixels[outIndex] = (ia << 24) | (ir << 16) | (ig << 8) | ib; + } + } +// + } + + /** + * Make a Gaussian blur kernel. + */ + private static float[] makeKernel(int r) { + int rows = r * 2 + 1; + float[] matrix = new float[rows]; + float sigma = (r + 1) / 2.0f; + float sigma22 = 2 * sigma * sigma; + float total = 0; + int index = 0; + for (int row = -r; row <= r; row++) { + matrix[index] = (float) (Math.exp(-1 * (row * row) / sigma22) / sigma); + + total += matrix[index]; + index++; + } + for (int i = 0; i < rows; i++) + matrix[i] /= total; + + return matrix; + } + + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/filter/NativeBlurFilter.java b/hoko-blur/src/main/java/com/hoko/blur/filter/NativeBlurFilter.java new file mode 100644 index 0000000000..172f814158 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/filter/NativeBlurFilter.java @@ -0,0 +1,40 @@ +package com.hoko.blur.filter; + +import android.graphics.Bitmap; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.anno.Direction; +import com.hoko.blur.anno.Mode; + +/** + * Created by yuxfzju on 2017/2/18. + */ + +public class NativeBlurFilter { + + public static void doBlur(@Mode int mode, Bitmap bitmap, int radius, int cores, int index, @Direction int direction) { + switch (mode) { + case HokoBlur.MODE_BOX: + nativeBoxBlur(bitmap, radius, cores, index, direction); + break; + case HokoBlur.MODE_STACK: + nativeStackBlur(bitmap, radius, cores, index, direction); + break; + case HokoBlur.MODE_GAUSSIAN: + nativeGaussianBlur(bitmap, radius, cores, index, direction); + break; + } + } + + public static void doFullBlur(@Mode int mode, Bitmap bitmap, int radius) { + doBlur(mode, bitmap, radius, 1, 0, HokoBlur.HORIZONTAL); + doBlur(mode, bitmap, radius, 1, 0, HokoBlur.VERTICAL); + } + + private static native void nativeBoxBlur(Bitmap bitmap, int radius, int cores, int index, int direction); + + private static native void nativeStackBlur(Bitmap bitmap, int radius, int cores, int index, int direction); + + private static native void nativeGaussianBlur(Bitmap bitmap, int radius, int cores, int index, int direction); + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/filter/OriginBlurFilter.java b/hoko-blur/src/main/java/com/hoko/blur/filter/OriginBlurFilter.java new file mode 100644 index 0000000000..d0ffbb60af --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/filter/OriginBlurFilter.java @@ -0,0 +1,98 @@ +package com.hoko.blur.filter; + +import android.graphics.Bitmap; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.anno.Direction; +import com.hoko.blur.anno.Mode; + +import static com.hoko.blur.util.BitmapUtil.replaceBitmap; + +/** + * Created by yuxfzju on 2017/2/19. + */ + +public final class OriginBlurFilter { + + public static void doBlur(@Mode int mode, Bitmap bitmap, int radius, int cores, int index, @Direction int direction) { + + int w = bitmap.getWidth(); + int h = bitmap.getHeight(); + + int x = 0; + int y = 0; + int deltaX = 0; + int deltaY = 0; + + if (direction == HokoBlur.HORIZONTAL) { + deltaY = h / cores; + y = index * deltaY; + + if (index == cores - 1) { + deltaY = h - (cores - 1) * deltaY; + } + + deltaX = w; + } else if (direction == HokoBlur.VERTICAL) { + deltaX = w / cores; + x = index * deltaX; + + if (index == cores - 1) { + deltaX = w - (cores - 1) * deltaX; + } + + deltaY = h; + } + + + final int[] pixels = new int[deltaX * deltaY]; + bitmap.getPixels(pixels, 0, deltaX, x, y, deltaX, deltaY); + + switch (mode) { + case HokoBlur.MODE_BOX: + BoxBlurFilter.doBlur(pixels, deltaX, deltaY, radius, direction); + break; + + case HokoBlur.MODE_GAUSSIAN: + GaussianBlurFilter.doBlur(pixels, deltaX, deltaY, radius, direction); + break; + + case HokoBlur.MODE_STACK: + StackBlurFilter.doBlur(pixels, deltaX, deltaY, radius, direction); + break; + } + if (bitmap.isMutable()) { + bitmap.setPixels(pixels, 0, deltaX, x, y, deltaX, deltaY); + } else { + replaceBitmap(bitmap, pixels, x, y, deltaX, deltaY); + } + + } + + public static void doFullBlur(@Mode int mode, Bitmap bitmap, int radius) { + int w = bitmap.getWidth(); + int h = bitmap.getHeight(); + + final int[] pixels = new int[w * h]; + bitmap.getPixels(pixels, 0, w, 0, 0, w, h); + + switch (mode) { + case HokoBlur.MODE_BOX: + BoxBlurFilter.doBlur(pixels, w, h, radius, HokoBlur.BOTH); + break; + + case HokoBlur.MODE_GAUSSIAN: + GaussianBlurFilter.doBlur(pixels, w, h, radius, HokoBlur.BOTH); + break; + + case HokoBlur.MODE_STACK: + StackBlurFilter.doBlur(pixels, w, h, radius, HokoBlur.BOTH); + break; + } + if (bitmap.isMutable()) { + bitmap.setPixels(pixels, 0, w, 0, 0, w, h); + } else { + replaceBitmap(bitmap, pixels, 0, 0, w, h); + } + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/filter/StackBlurFilter.java b/hoko-blur/src/main/java/com/hoko/blur/filter/StackBlurFilter.java new file mode 100644 index 0000000000..96ff82482f --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/filter/StackBlurFilter.java @@ -0,0 +1,277 @@ +package com.hoko.blur.filter; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.anno.Direction; + +/** + * Stack HokoBlur v1.0 from + * http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html + *

+ * Java Author: Mario Klingemann mario@quasimondo.com + * http://incubator.quasimondo.com + * created Feburary 29, 2004 + * Android port : Yahel Bouaziz yahel@kayenko.com + * http://www.kayenko.com + * ported april 5th, 2012 + *

+ * This is a compromise between Gaussian HokoBlur and Box blur + * It creates much better looking blurs than Box HokoBlur, but is + * 7x faster than my Gaussian HokoBlur implementation. + *

+ * I called it Stack HokoBlur because this describes best how this + * filter works internally: it creates a kind of moving stack + * of colors whilst scanning through the image. Thereby it + * just has to add one new block of color to the right side + * of the stack and remove the leftmost color. The remaining + * colors on the topmost layer of the stack are either added on + * or reduced by one, depending on if they are on the right or + * on the left side of the stack. + *

+ * If you are using this algorithm in your code please add + * the following line: + *

+ * Stack HokoBlur Algorithm by Mario Klingemann mario@quasimondo.com + **/ +final class StackBlurFilter { + + public static void doBlur(int[] pix, int w, int h, int radius, @Direction int direction) { + + if (direction == HokoBlur.HORIZONTAL) { + doHorizontalBlur(pix, w, h, radius); + } else if (direction == HokoBlur.VERTICAL) { + doVerticalBlur(pix, w, h, radius); + } else { + doHorizontalBlur(pix, w, h, radius); + doVerticalBlur(pix, w, h, radius); + } + + } + + private static void doHorizontalBlur(int[] pix, int w, int h, int radius) { + int wm = w - 1; + int hm = h - 1; + int wh = w * h; + int div = radius + radius + 1; + + int[] r = new int[wh]; + int[] g = new int[wh]; + int[] b = new int[wh]; + int rsum, gsum, bsum, x, y, i, p, yp, yi, yw; + int[] vmin = new int[Math.max(w, h)]; + + int divsum = (div + 1) >> 1; + divsum *= divsum; + int[] dv = new int[256 * divsum]; + for (i = 0; i < 256 * divsum; i++) { + dv[i] = (i / divsum); + } + + yw = yi = 0; + + int[][] stack = new int[div][3]; + int stackpointer; + int stackstart; + int[] sir; + int rbs; + int r1 = radius + 1; + int routsum, goutsum, boutsum; + int rinsum, ginsum, binsum; + + + for (y = 0; y < h; y++) { + rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0; + for (i = -radius; i <= radius; i++) { + p = pix[yi + Math.min(wm, Math.max(i, 0))]; + sir = stack[i + radius]; + sir[0] = (p & 0xff0000) >> 16; + sir[1] = (p & 0x00ff00) >> 8; + sir[2] = (p & 0x0000ff); + rbs = r1 - Math.abs(i); + rsum += sir[0] * rbs; + gsum += sir[1] * rbs; + bsum += sir[2] * rbs; + if (i > 0) { + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + } else { + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + } + } + stackpointer = radius; + + for (x = 0; x < w; x++) { + + r[yi] = dv[rsum]; + g[yi] = dv[gsum]; + b[yi] = dv[bsum]; + + pix[yi] = (0xff000000 & pix[yi]) | (dv[rsum] << 16) | (dv[gsum] << 8) | dv[bsum]; + + rsum -= routsum; + gsum -= goutsum; + bsum -= boutsum; + + stackstart = stackpointer - radius + div; + sir = stack[stackstart % div]; + + routsum -= sir[0]; + goutsum -= sir[1]; + boutsum -= sir[2]; + + if (y == 0) { + vmin[x] = Math.min(x + radius + 1, wm); + } + p = pix[yw + vmin[x]]; + + sir[0] = (p & 0xff0000) >> 16; + sir[1] = (p & 0x00ff00) >> 8; + sir[2] = (p & 0x0000ff); + + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + + rsum += rinsum; + gsum += ginsum; + bsum += binsum; + + stackpointer = (stackpointer + 1) % div; + sir = stack[(stackpointer) % div]; + + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + + rinsum -= sir[0]; + ginsum -= sir[1]; + binsum -= sir[2]; + + yi++; + } + yw += w; + } + } + + private static void doVerticalBlur(int[] pix, int w, int h, int radius) { + int wm = w - 1; + int hm = h - 1; + int wh = w * h; + int div = radius + radius + 1; + + int[] r = new int[wh]; + int[] g = new int[wh]; + int[] b = new int[wh]; + int rsum, gsum, bsum, x, y, i, p, yp, yi, yw; + int[] vmin = new int[Math.max(w, h)]; + + int divsum = (div + 1) >> 1; + divsum *= divsum; + int[] dv = new int[256 * divsum]; + for (i = 0; i < 256 * divsum; i++) { + dv[i] = (i / divsum); + } + + yw = yi = 0; + + int[][] stack = new int[div][3]; + int stackpointer; + int stackstart; + int[] sir; + int rbs; + int r1 = radius + 1; + int routsum, goutsum, boutsum; + int rinsum, ginsum, binsum; + + for (i = 0; i < wh; i++) { + + r[i] = (pix[i] & 0xff0000) >> 16; + g[i] = (pix[i] & 0x00ff00) >> 8; + b[i] = (pix[i] & 0x0000ff); + } + + for (x = 0; x < w; x++) { + rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0; + yp = -radius * w; + for (i = -radius; i <= radius; i++) { + yi = Math.max(0, yp) + x; + + sir = stack[i + radius]; + + sir[0] = r[yi]; + sir[1] = g[yi]; + sir[2] = b[yi]; + + rbs = r1 - Math.abs(i); + + rsum += r[yi] * rbs; + gsum += g[yi] * rbs; + bsum += b[yi] * rbs; + + if (i > 0) { + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + } else { + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + } + + if (i < hm) { + yp += w; + } + } + yi = x; + stackpointer = radius; + for (y = 0; y < h; y++) { + // Preserve alpha channel: ( 0xff000000 & pix[yi] ) + pix[yi] = (0xff000000 & pix[yi]) | (dv[rsum] << 16) | (dv[gsum] << 8) | dv[bsum]; + + rsum -= routsum; + gsum -= goutsum; + bsum -= boutsum; + + stackstart = stackpointer - radius + div; + sir = stack[stackstart % div]; + + routsum -= sir[0]; + goutsum -= sir[1]; + boutsum -= sir[2]; + + if (x == 0) { + vmin[y] = Math.min(y + r1, hm) * w; + } + p = x + vmin[y]; + + sir[0] = r[p]; + sir[1] = g[p]; + sir[2] = b[p]; + + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + + rsum += rinsum; + gsum += ginsum; + bsum += binsum; + + stackpointer = (stackpointer + 1) % div; + sir = stack[stackpointer]; + + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + + rinsum -= sir[0]; + ginsum -= sir[1]; + binsum -= sir[2]; + + yi += w; + } + } + } +} + diff --git a/hoko-blur/src/main/java/com/hoko/blur/opengl/cache/CachePool.java b/hoko-blur/src/main/java/com/hoko/blur/opengl/cache/CachePool.java new file mode 100644 index 0000000000..cd5dd3c617 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/opengl/cache/CachePool.java @@ -0,0 +1,123 @@ +package com.hoko.blur.opengl.cache; + +import com.hoko.blur.util.Preconditions; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; + +/** + * Created by yuxfzju on 2017/1/21. + */ + +public abstract class CachePool { + + private static final int MAX_SIZE = 1024; + + private int mMaxSize; + + private List mInternalCache; + + public CachePool() { + this(MAX_SIZE); + } + + public CachePool(int maxSize) { + Preconditions.checkArgument(maxSize > 0, "maxSize <= 0"); + mMaxSize = maxSize; + mInternalCache = new LinkedList<>(); + } + + public final V get(K key) { + Preconditions.checkNotNull(key, "size == null"); + V listValue = remove(key); + if (listValue != null) { + return listValue; + } + + //listValue is null + return create(key); + } + + public final void put(V v) { + Preconditions.checkNotNull(v, "value == null"); + try { + if (!mInternalCache.contains(v)) { + synchronized (this) { + if (!mInternalCache.contains(v)) { + mInternalCache.add(v); + } + } + } + } finally { + trimToSize(mMaxSize); + } + + } + + private V remove(K key) { + Preconditions.checkNotNull(key, "key == null"); + + V previous = null; + synchronized (this) { + Iterator it = mInternalCache.iterator(); + while(it.hasNext()) { + V value = it.next(); + if (checkHit(key, value)) { + it.remove(); + previous = value; + break; + } + } + } + + return previous; + } + + public void delete(K key) { + Preconditions.checkNotNull(key, "key == null"); + V removed = remove(key); + if (removed != null) { + entryDeleted(removed); + } + } + + protected V create(K key) { + return null; + } + + protected void entryDeleted(V v) { + + } + + protected abstract boolean checkHit(K key, V value); + + private void trimToSize(int maxSize) { + List removedCollection = new ArrayList<>(); + synchronized (this) { + while (mInternalCache.size() > maxSize && !mInternalCache.isEmpty()) { + V removed = mInternalCache.remove(0); + if (removed != null) { + removedCollection.add(removed); + } + } + } + + for(V removed : removedCollection) { + if (removed != null) { + entryDeleted(removed); + } + } + + } + + public synchronized final int maxSize() { + return mMaxSize; + } + + public final void evictAll() { + trimToSize(-1); + } + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/opengl/cache/FrameBufferCache.java b/hoko-blur/src/main/java/com/hoko/blur/opengl/cache/FrameBufferCache.java new file mode 100644 index 0000000000..9183744432 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/opengl/cache/FrameBufferCache.java @@ -0,0 +1,84 @@ +package com.hoko.blur.opengl.cache; + +import com.hoko.blur.api.IFrameBuffer; +import com.hoko.blur.opengl.framebuffer.FrameBufferFactory; + +/** + * Created by yuxfzju on 2017/1/21. + */ + +public class FrameBufferCache { + + private static class FrameBufferCacheHolder { + private static final FrameBufferCache INSTANCE = new FrameBufferCache(); + } + + private CachePool mCache; + + private volatile IFrameBuffer sDisplayFrameBuffer; + + private FrameBufferCache() { + mCache = new CachePool() { + @Override + protected IFrameBuffer create(Object key) { + return FrameBufferFactory.create(); + } + + @Override + protected boolean checkHit(Object key, IFrameBuffer frameBuffer) { + return true; + } + + @Override + protected void entryDeleted(IFrameBuffer frameBuffer) { + if (frameBuffer != null) { + frameBuffer.delete(); + } + } + }; + + } + + public static FrameBufferCache getInstance() { + return FrameBufferCacheHolder.INSTANCE; + } + + public IFrameBuffer getFrameBuffer() { + if (mCache != null) { + return mCache.get(new Object()); + } + return null; + } + + public IFrameBuffer getDisplayFrameBuffer() { + if (sDisplayFrameBuffer == null) { + synchronized (this) { + if (sDisplayFrameBuffer == null) { + sDisplayFrameBuffer = FrameBufferFactory.getDisplayFrameBuffer(); + } + } + } + + return sDisplayFrameBuffer; + } + + public void recycleFrameBuffer(IFrameBuffer frameBuffer) { + if (frameBuffer != null) { + mCache.put(frameBuffer); + } + } + + public void deleteFrameBuffers() { + if (mCache != null) { + mCache.evictAll(); + } + + synchronized (this) { + if (sDisplayFrameBuffer != null) { + sDisplayFrameBuffer.delete(); + sDisplayFrameBuffer = null; + } + } + } + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/opengl/cache/TextureCache.java b/hoko-blur/src/main/java/com/hoko/blur/opengl/cache/TextureCache.java new file mode 100644 index 0000000000..8dad160cde --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/opengl/cache/TextureCache.java @@ -0,0 +1,69 @@ +package com.hoko.blur.opengl.cache; + +import com.hoko.blur.api.ITexture; +import com.hoko.blur.opengl.texture.TextureFactory; +import com.hoko.blur.opengl.util.Size; + +/** + * Created by yuxfzju on 17/1/20. + */ + +public class TextureCache { + + private static class TextureCacheHolder { + private static final TextureCache INSTANCE = new TextureCache(); + } + + private CachePool mCache; + + private TextureCache() { + mCache = new CachePool() { + + @Override + protected ITexture create(Size size) { + if (size == null) { + return null; + } + return TextureFactory.create(size.width(), size.height()); + } + + + @Override + protected void entryDeleted(ITexture texture) { + if (texture != null) { + texture.delete(); + } + } + + @Override + protected boolean checkHit(Size size, ITexture texture) { + return size != null && texture != null && size.width() == texture.width() && size.height() == texture.height(); + } + }; + } + + public static TextureCache getInstance() { + return TextureCacheHolder.INSTANCE; + } + + public ITexture getTexture(int width, int height) { + + if (mCache != null) { + return mCache.get(new Size(width, height)); + } + + return null; + } + + public void recycleTexture(ITexture texture) { + if (texture != null) { + mCache.put(texture); + } + } + + public void deleteTextures() { + if (mCache != null) { + mCache.evictAll(); + } + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/opengl/framebuffer/FrameBuffer.java b/hoko-blur/src/main/java/com/hoko/blur/opengl/framebuffer/FrameBuffer.java new file mode 100644 index 0000000000..cd3ec710dc --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/opengl/framebuffer/FrameBuffer.java @@ -0,0 +1,77 @@ +package com.hoko.blur.opengl.framebuffer; + +import android.opengl.GLES20; + +import com.hoko.blur.api.IFrameBuffer; +import com.hoko.blur.api.ITexture; + +/** + * Created by yuxfzju on 2017/1/22. + */ + +class FrameBuffer implements IFrameBuffer { + + private int mFrameBufferId; + + private ITexture mTexture; + + FrameBuffer() { + create(); + } + + FrameBuffer(int id) { + mFrameBufferId = id; + } + + public int id() { + return mFrameBufferId; + } + + public void id(int frameBufferId) { + mFrameBufferId = frameBufferId; + } + + @Override + public void create() { + final int[] frameBufferIds = new int[1]; + + GLES20.glGenFramebuffers(1, frameBufferIds, 0); + + mFrameBufferId = frameBufferIds[0]; + } + + @Override + public void bindTexture(ITexture texture) { + if (texture == null) { + return; + } + mTexture = texture; + + if (texture.id() != 0) { + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, mFrameBufferId); + + GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, + GLES20.GL_TEXTURE_2D, texture.id(), 0); + } + + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); + } + + public ITexture bindTexture() { + return mTexture; + } + + @Override + public void bindSelf() { + if (mFrameBufferId != 0) { + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, mFrameBufferId); + } + } + + @Override + public void delete() { + if (mFrameBufferId != 0) { + GLES20.glDeleteFramebuffers(1, new int[]{mFrameBufferId}, 0); + } + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/opengl/framebuffer/FrameBufferFactory.java b/hoko-blur/src/main/java/com/hoko/blur/opengl/framebuffer/FrameBufferFactory.java new file mode 100644 index 0000000000..f314351b07 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/opengl/framebuffer/FrameBufferFactory.java @@ -0,0 +1,27 @@ +package com.hoko.blur.opengl.framebuffer; + +import android.opengl.GLES20; + +import com.hoko.blur.api.IFrameBuffer; + +/** + * Created by yuxfzju on 2017/1/22. + */ + +public class FrameBufferFactory { + + public static IFrameBuffer create() { + return new FrameBuffer(); + } + + public static IFrameBuffer create(int id) { + return new FrameBuffer(id); + } + + public static IFrameBuffer getDisplayFrameBuffer() { + // Get the bound FBO (On Screen) + final int[] displayFbo = new int[1]; + GLES20.glGetIntegerv(GLES20.GL_FRAMEBUFFER_BINDING, displayFbo, 0); + return create(displayFbo[0]); + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/opengl/offscreen/EglBuffer.java b/hoko-blur/src/main/java/com/hoko/blur/opengl/offscreen/EglBuffer.java new file mode 100644 index 0000000000..b5035dac53 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/opengl/offscreen/EglBuffer.java @@ -0,0 +1,168 @@ +package com.hoko.blur.opengl.offscreen; + +import android.graphics.Bitmap; +import android.opengl.GLES20; +import android.util.Log; + +import com.hoko.blur.anno.Mode; + +import java.nio.IntBuffer; + +import javax.microedition.khronos.egl.EGL10; +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.egl.EGLContext; +import javax.microedition.khronos.egl.EGLDisplay; +import javax.microedition.khronos.egl.EGLSurface; + +import static javax.microedition.khronos.opengles.GL10.GL_RGBA; +import static javax.microedition.khronos.opengles.GL10.GL_UNSIGNED_BYTE; + +/** + * Created by yuxfzju on 16/8/29. + */ +public class EglBuffer { + private static final String TAG = EglBuffer.class.getSimpleName(); + + private EGL10 mEgl; + + private EGLDisplay mEGLDisplay = EGL10.EGL_NO_DISPLAY; + + private static final int EGL_CONTEXT_CLIENT_VERSION = 0x3098; + + private static final int EGL_OPENGL_ES2_BIT = 4; + + private EGLConfig[] mEglConfigs = new EGLConfig[1]; + private int[] mContextAttrs = new int[]{ + EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE + }; + + + //EGLContext、EGLSurface and Renderer are bound to current thread. + // So here use the ThreadLocal to implement Thread isolation. + private ThreadLocal mThreadRenderer = new ThreadLocal<>(); + + private ThreadLocal mThreadEGLContext = new ThreadLocal<>(); + + public EglBuffer() { + initGL(); + } + + private void initGL() { + + int[] configAttribs = { + EGL10.EGL_BUFFER_SIZE, 32, + EGL10.EGL_ALPHA_SIZE, 8, + EGL10.EGL_BLUE_SIZE, 8, + EGL10.EGL_GREEN_SIZE, 8, + EGL10.EGL_RED_SIZE, 8, + EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, + EGL10.EGL_SURFACE_TYPE, EGL10.EGL_PBUFFER_BIT, + EGL10.EGL_NONE + }; + + mEgl = (EGL10) EGLContext.getEGL(); + mEGLDisplay = mEgl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY); + mEgl.eglInitialize(mEGLDisplay, new int[2]); + mEgl.eglChooseConfig(mEGLDisplay, configAttribs, mEglConfigs, 1, new int[1]); + } + + private EGLSurface createSurface(int width, int height) { + int[] surfaceAttrs = { + EGL10.EGL_WIDTH, width, + EGL10.EGL_HEIGHT, height, + EGL10.EGL_NONE + }; + + EGLSurface eglSurface = mEgl.eglCreatePbufferSurface(mEGLDisplay, mEglConfigs[0], surfaceAttrs); + + mEgl.eglMakeCurrent(mEGLDisplay, eglSurface, eglSurface, getEGLContext()); + + return eglSurface; + + } + + + public Bitmap getBlurBitmap(Bitmap bitmap) { + final int w = bitmap.getWidth(); + final int h = bitmap.getHeight(); + + try { + EGLSurface eglSurface = createSurface(w, h); + if (eglSurface == null) { + Log.e(TAG, "Create surface error"); + return bitmap; + } + + OffScreenBlurRenderer renderer = getRenderer(); + if (renderer != null) { + renderer.onDrawFrame(bitmap); + mEgl.eglSwapBuffers(mEGLDisplay, eglSurface); + } else { + Log.e(TAG, "Renderer is unavailable"); + return bitmap; + } + convertToBitmap(bitmap); + } catch (Throwable t) { + Log.e(TAG, "Blur the bitmap error", t); + } finally { + unbindEglCurrent(); + } + + return bitmap; + + } + + private void convertToBitmap(Bitmap bitmap) { + final int w = bitmap.getWidth(); + final int h = bitmap.getHeight(); + + IntBuffer ib = IntBuffer.allocate(w * h); + GLES20.glReadPixels(0, 0, w, h, GL_RGBA, GL_UNSIGNED_BYTE, ib); + int[] ia = ib.array(); + + bitmap.copyPixelsFromBuffer(IntBuffer.wrap(ia)); + } + + /** + * When the current thread finish renderring and reading pixels, the EGLContext should be unbound. + * Then the EGLContext could be reused for other threads. Make it possible to share the EGLContext + * To bind the EGLContext to current Thread, just call eglMakeCurrent() + */ + private void unbindEglCurrent() { + mEgl.eglMakeCurrent(mEGLDisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT); + + } + + private OffScreenBlurRenderer getRenderer() { + OffScreenBlurRenderer renderer = mThreadRenderer.get(); + if (renderer == null) { + renderer = new OffScreenBlurRenderer(); + mThreadRenderer.set(renderer); + } + + return renderer; + } + + private EGLContext getEGLContext() { + EGLContext eglContext = mThreadEGLContext.get(); + if (eglContext == null) { + eglContext = mEgl.eglCreateContext(mEGLDisplay, mEglConfigs[0], EGL10.EGL_NO_CONTEXT, mContextAttrs); + mThreadEGLContext.set(eglContext); + } + + return eglContext; + } + + public void setBlurRadius(int radius) { + getRenderer().setBlurRadius(radius); + } + + public void setBlurMode(@Mode int mode) { + getRenderer().setBlurMode(mode); + } + + public void free() { + getRenderer().free(); + } + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/opengl/offscreen/OffScreenBlurRenderer.java b/hoko-blur/src/main/java/com/hoko/blur/opengl/offscreen/OffScreenBlurRenderer.java new file mode 100644 index 0000000000..f00cb1cff8 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/opengl/offscreen/OffScreenBlurRenderer.java @@ -0,0 +1,272 @@ +package com.hoko.blur.opengl.offscreen; + +import android.graphics.Bitmap; +import android.opengl.GLES20; + +import com.hoko.blur.anno.Mode; +import com.hoko.blur.anno.NotThreadSafe; +import com.hoko.blur.api.IFrameBuffer; +import com.hoko.blur.api.IProgram; +import com.hoko.blur.api.IRenderer; +import com.hoko.blur.api.ITexture; +import com.hoko.blur.opengl.cache.FrameBufferCache; +import com.hoko.blur.opengl.program.ProgramFactory; +import com.hoko.blur.opengl.texture.TextureFactory; +import com.hoko.blur.util.ShaderUtil; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.FloatBuffer; +import java.nio.ShortBuffer; + +import javax.microedition.khronos.egl.EGL10; +import javax.microedition.khronos.egl.EGLContext; + +/** + * Created by yuxfzju on 16/8/10. + */ + +@NotThreadSafe +public class OffScreenBlurRenderer implements IRenderer { + private final static String TAG = OffScreenBlurRenderer.class.getSimpleName(); + + private static final String vertexShaderCode = + "attribute vec2 aTexCoord; \n" + + "attribute vec4 aPosition; \n" + + "varying vec2 vTexCoord; \n" + + "void main() { \n" + + " gl_Position = aPosition; \n" + + " vTexCoord = aTexCoord; \n" + + "} \n"; + + private static final int COORDS_PER_VERTEX = 3; + private static final int VERTEX_STRIDE = COORDS_PER_VERTEX * 4; + + private static final float[] squareCoords = { + -1f, 1f, 0.0f, // top left + -1f, -1f, 0.0f, // bottom left + 1f, -1f, 0.0f, // bottom right + 1f, 1f, 0.0f // top right + }; + + private static final float[] mTexHorizontalCoords = { + 1.0f, 1.0f, + 1.0f, 0.0f, + 0.0f, 0.0f, + 0.0f, 1.0f + }; + + private static final short[] drawOrder = {0, 1, 2, 0, 2, 3}; + + private FloatBuffer mVertexBuffer; + private ShortBuffer mDrawListBuffer; + private FloatBuffer mTexCoordBuffer; + + private IProgram mProgram; + + private int mRadius; + @Mode + private int mMode; + + private volatile boolean mNeedRelink; + + public OffScreenBlurRenderer() { + + ByteBuffer bb = ByteBuffer.allocateDirect(squareCoords.length * 4); + bb.order(ByteOrder.nativeOrder()); + mVertexBuffer = bb.asFloatBuffer(); + mVertexBuffer.put(squareCoords); + mVertexBuffer.position(0); + + ByteBuffer dlb = ByteBuffer.allocateDirect(drawOrder.length * 2); + dlb.order(ByteOrder.nativeOrder()); + mDrawListBuffer = dlb.asShortBuffer(); + mDrawListBuffer.put(drawOrder); + mDrawListBuffer.position(0); + + ByteBuffer tcb = ByteBuffer.allocateDirect(mTexHorizontalCoords.length * 4); + tcb.order(ByteOrder.nativeOrder()); + mTexCoordBuffer = tcb.asFloatBuffer(); + mTexCoordBuffer.put(mTexHorizontalCoords); + mTexCoordBuffer.position(0); + + + } + + @Override + public void onDrawFrame(Bitmap bitmap) { + if (bitmap == null || bitmap.isRecycled()) { + return; + } + + if (bitmap.getWidth() == 0 || bitmap.getHeight() == 0) { + return; + } + + BlurContext blurContext = null; + try { + blurContext = prepare(bitmap); + draw(blurContext); + } finally { + onPostBlur(blurContext); + } + } + + + private BlurContext prepare(Bitmap bitmap) { + EGLContext context = ((EGL10) EGLContext.getEGL()).eglGetCurrentContext(); + if (context.equals(EGL10.EGL_NO_CONTEXT)) { + throw new IllegalStateException("This thread has no EGLContext."); + } + + if (mNeedRelink || mProgram == null) { + deletePrograms(); + mProgram = ProgramFactory.create(vertexShaderCode, ShaderUtil.getFragmentShaderCode(mMode)); + mNeedRelink = false; + } + + if (mProgram.id() == 0) { + throw new IllegalStateException("Failed to create program."); + } + + int w = bitmap.getWidth(); + int h = bitmap.getHeight(); + + GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); + GLES20.glViewport(0, 0, w, h); + + return new BlurContext(bitmap); + + } + + + private void draw(BlurContext blurContext) { + drawOneDimenBlur(blurContext, true); + drawOneDimenBlur(blurContext, false); + + } + + private void drawOneDimenBlur(BlurContext blurContext, boolean isHorizontal) { + try { + GLES20.glUseProgram(mProgram.id()); + + int positionId = GLES20.glGetAttribLocation(mProgram.id(), "aPosition"); + GLES20.glEnableVertexAttribArray(positionId); + GLES20.glVertexAttribPointer(positionId, COORDS_PER_VERTEX, GLES20.GL_FLOAT, false, VERTEX_STRIDE, mVertexBuffer); + + int texCoordId = GLES20.glGetAttribLocation(mProgram.id(), "aTexCoord"); + GLES20.glEnableVertexAttribArray(texCoordId); + GLES20.glVertexAttribPointer(texCoordId, 2, GLES20.GL_FLOAT, false, 0, mTexCoordBuffer); + + if (isHorizontal) { + blurContext.getBlurFrameBuffer().bindSelf(); + } + + int textureUniformId = GLES20.glGetUniformLocation(mProgram.id(), "uTexture"); + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, isHorizontal ? blurContext.getInputTexture().id() : blurContext.getHorizontalTexture().id()); + GLES20.glUniform1i(textureUniformId, 0); + + int radiusId = GLES20.glGetUniformLocation(mProgram.id(), "uRadius"); + int widthOffsetId = GLES20.glGetUniformLocation(mProgram.id(), "uWidthOffset"); + int heightOffsetId = GLES20.glGetUniformLocation(mProgram.id(), "uHeightOffset"); + GLES20.glUniform1i(radiusId, mRadius); + GLES20.glUniform1f(widthOffsetId, isHorizontal ? 0 : 1f / blurContext.getBitmap().getWidth()); + GLES20.glUniform1f(heightOffsetId, isHorizontal ? 1f / blurContext.getBitmap().getHeight() : 0); + + GLES20.glDrawElements(GLES20.GL_TRIANGLES, drawOrder.length, GLES20.GL_UNSIGNED_SHORT, mDrawListBuffer); + + if (!isHorizontal) { + GLES20.glDisableVertexAttribArray(positionId); + GLES20.glDisableVertexAttribArray(texCoordId); + } + } finally { + resetAllBuffer(); + } + + } + + private void resetAllBuffer() { + GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); + GLES20.glUseProgram(0); + mVertexBuffer.rewind(); + mTexCoordBuffer.rewind(); + mDrawListBuffer.rewind(); + } + + private void onPostBlur(BlurContext blurContext) { + if (blurContext != null) { + blurContext.finish(); + } + } + + + private void deletePrograms() { + if (mProgram != null) { + mProgram.delete(); + } + } + + public void free() { + mNeedRelink = true; + deletePrograms(); + } + + void setBlurMode(@Mode int mode) { + mNeedRelink = true; + mMode = mode; + } + + void setBlurRadius(int radius) { + mRadius = radius; + } + + private static class BlurContext { + private ITexture inputTexture; + private ITexture horizontalTexture; + private IFrameBuffer blurFrameBuffer; + private Bitmap bitmap; + + private BlurContext(Bitmap bitmap) { + //todo Textures share problem is not solved. Here create a new texture directly, not get from the texture cache + //It doesn't affect performance seriously. + this.bitmap = bitmap; + inputTexture = TextureFactory.create(bitmap); + horizontalTexture = TextureFactory.create(bitmap.getWidth(), bitmap.getHeight()); + blurFrameBuffer = FrameBufferCache.getInstance().getFrameBuffer(); + if (blurFrameBuffer != null) { + blurFrameBuffer.bindTexture(horizontalTexture); + } else { + throw new IllegalStateException("Failed to create framebuffer."); + } + } + + private ITexture getInputTexture() { + return inputTexture; + } + + private ITexture getHorizontalTexture() { + return horizontalTexture; + } + + private IFrameBuffer getBlurFrameBuffer() { + return blurFrameBuffer; + } + + private Bitmap getBitmap() { + return bitmap; + } + + private void finish() { + if (inputTexture != null) { + inputTexture.delete(); + } + if (horizontalTexture != null) { + horizontalTexture.delete(); + } + FrameBufferCache.getInstance().recycleFrameBuffer(blurFrameBuffer); + } + } + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/opengl/program/Program.java b/hoko-blur/src/main/java/com/hoko/blur/opengl/program/Program.java new file mode 100644 index 0000000000..f520563386 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/opengl/program/Program.java @@ -0,0 +1,85 @@ +package com.hoko.blur.opengl.program; + +import android.opengl.GLES20; +import android.util.Log; + +import com.hoko.blur.api.IProgram; + +import static com.hoko.blur.util.ShaderUtil.checkGLError; + +public class Program implements IProgram { + + private static final String TAG = Program.class.getSimpleName(); + + private int id; + + Program(String vertexShaderCode, String fragmentShaderCode) { + create(vertexShaderCode, fragmentShaderCode); + } + + @Override + public void create(String vertexShaderCode, String fragmentShaderCode) { + + int vertexShader = 0; + int fragmentShader = 0; + try { + vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, vertexShaderCode); + fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentShaderCode); + + if (vertexShader == 0 || fragmentShader == 0) { + return; + } + + id = GLES20.glCreateProgram(); + if (id != 0) { + GLES20.glAttachShader(id, vertexShader); + GLES20.glAttachShader(id, fragmentShader); + GLES20.glLinkProgram(id); + checkGLError("Attach Shader"); + final int[] linkStatus = new int[1]; + GLES20.glGetProgramiv(id, GLES20.GL_LINK_STATUS, linkStatus, 0); + if (linkStatus[0] != 1) { + Log.e(TAG, "Failed to link program"); + GLES20.glDeleteProgram(id); + id = 0; + } +// + } + } finally { + GLES20.glDetachShader(id, vertexShader); + GLES20.glDetachShader(id, fragmentShader); + GLES20.glDeleteShader(vertexShader); + GLES20.glDeleteShader(fragmentShader); + } + } + + @Override + public void delete() { + if (id != 0) { + GLES20.glUseProgram(0); + GLES20.glDeleteProgram(id); + } + } + + private int loadShader(int type, String shaderCode) { + int shader = GLES20.glCreateShader(type); + if (shader != 0) { + GLES20.glShaderSource(shader, shaderCode); + GLES20.glCompileShader(shader); + + final int[] compiled = new int[1]; + GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0); + if (compiled[0] == 0) { + Log.e(TAG, "Failed to compile the shader"); + GLES20.glDeleteShader(shader); + shader = 0; + } + } + return shader; + } + + @Override + public int id() { + return id; + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/opengl/program/ProgramFactory.java b/hoko-blur/src/main/java/com/hoko/blur/opengl/program/ProgramFactory.java new file mode 100644 index 0000000000..cc25e67d09 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/opengl/program/ProgramFactory.java @@ -0,0 +1,10 @@ +package com.hoko.blur.opengl.program; + +import com.hoko.blur.api.IProgram; + +public class ProgramFactory { + + public static IProgram create(String vertexShaderCode, String fragmentShaderCode) { + return new Program(vertexShaderCode, fragmentShaderCode); + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/opengl/texture/BitmapTexture.java b/hoko-blur/src/main/java/com/hoko/blur/opengl/texture/BitmapTexture.java new file mode 100644 index 0000000000..44d51b481b --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/opengl/texture/BitmapTexture.java @@ -0,0 +1,37 @@ +package com.hoko.blur.opengl.texture; + +import android.graphics.Bitmap; +import android.opengl.GLES20; +import android.opengl.GLUtils; + + +import java.lang.ref.WeakReference; + +/** + * Created by yuxfzju on 2017/1/24. + */ + +public class BitmapTexture extends Texture { + + private WeakReference mBitmapWeakRef; + + BitmapTexture(Bitmap bitmap) { + super(bitmap.getWidth(), bitmap.getHeight()); + mBitmapWeakRef = new WeakReference<>(bitmap); + create(); + + } + + @Override + protected void onTextureCreated() { + if (width() != 0 && height() != 0 && mBitmapWeakRef != null) { + Bitmap bitmap = mBitmapWeakRef.get(); + + if (bitmap != null && !bitmap.isRecycled()) { + GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0); + } + + } + + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/opengl/texture/SimpleTexture.java b/hoko-blur/src/main/java/com/hoko/blur/opengl/texture/SimpleTexture.java new file mode 100644 index 0000000000..357accf874 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/opengl/texture/SimpleTexture.java @@ -0,0 +1,26 @@ +package com.hoko.blur.opengl.texture; + +import android.opengl.GLES20; + +import com.hoko.blur.util.Preconditions; + +import java.nio.Buffer; + +/** + * Created by yuxfzju on 17/1/20. + */ + +class SimpleTexture extends Texture { + + SimpleTexture(int width, int height) { + super(width, height); + create(); + } + + @Override + protected void onTextureCreated() { + Preconditions.checkArgument(width() > 0 && height() > 0, "width > 0 and height > 0"); + GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, width(), height(), 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, (Buffer) null); + } + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/opengl/texture/Texture.java b/hoko-blur/src/main/java/com/hoko/blur/opengl/texture/Texture.java new file mode 100644 index 0000000000..8b1d7e13a3 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/opengl/texture/Texture.java @@ -0,0 +1,68 @@ +package com.hoko.blur.opengl.texture; + +import android.opengl.GLES20; + +import com.hoko.blur.api.ITexture; + +/** + * Created by yuxfzju on 17/1/20. + */ + +public abstract class Texture implements ITexture { + + private int mTextureId; + + private int mWidth; + + private int mHeight; + + public Texture(int width, int height) { + this.mWidth = width; + this.mHeight = height; + } + + @Override + public void create() { + + final int[] textureIds = new int[1]; + + GLES20.glGenTextures(1, textureIds, 0); + + mTextureId = textureIds[0]; + + if (mTextureId != 0) { + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextureId); + GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); + GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); + GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); + GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST); + onTextureCreated(); + } + + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); + } + + protected abstract void onTextureCreated(); + + @Override + public void delete() { + if (mTextureId != 0) { + GLES20.glDeleteTextures(1, new int[]{mTextureId}, 0); + } + } + + @Override + public int id() { + return mTextureId; + } + + @Override + public int width() { + return mWidth; + } + + @Override + public int height() { + return mHeight; + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/opengl/texture/TextureFactory.java b/hoko-blur/src/main/java/com/hoko/blur/opengl/texture/TextureFactory.java new file mode 100644 index 0000000000..ffa66b2c4b --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/opengl/texture/TextureFactory.java @@ -0,0 +1,23 @@ +package com.hoko.blur.opengl.texture; + +import android.graphics.Bitmap; + +import com.hoko.blur.util.Preconditions; + +/** + * Created by yuxfzju on 17/1/20. + */ + +public class TextureFactory { + public static Texture create(int width, int height) { + Preconditions.checkArgument(width > 0 && height > 0, "width > 0 and height > 0"); + + return new SimpleTexture(width, height); + } + + public static Texture create(Bitmap bitmap) { + Preconditions.checkNotNull(bitmap, "bitmap == null"); + Preconditions.checkArgument(!bitmap.isRecycled(), "bitmap is recycled"); + return new BitmapTexture(bitmap); + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/opengl/util/Size.java b/hoko-blur/src/main/java/com/hoko/blur/opengl/util/Size.java new file mode 100644 index 0000000000..807e79be23 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/opengl/util/Size.java @@ -0,0 +1,71 @@ +package com.hoko.blur.opengl.util; + +/** + * Created by yuxfzju on 2017/1/22. + */ + +public final class Size { + + private int mWidth; + + private int mHeight; + + public Size(int width, int height) { + mWidth = width; + + mHeight = height; + } + + public Size(Size size) { + if (size == null) { + throw new IllegalArgumentException("size is null"); + } + + mWidth = size.width(); + + mHeight = size.height(); + } + + public int width() { + return mWidth; + } + + public void width(int mWidth) { + this.mWidth = mWidth; + } + + public int height() { + return mHeight; + } + + public void height(int mHeight) { + this.mHeight = mHeight; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + + if (obj == this) { + return true; + } + + if (obj instanceof Size) { + Size size = (Size) obj; + return width() == size.width() && height() == size.height(); + } + return false; + } + + @Override + public int hashCode() { + return mHeight ^ ((mWidth << (Integer.SIZE / 2)) | (mWidth >>> (Integer.SIZE / 2))); + } + + @Override + public String toString() { + return mWidth + "x" + mHeight; + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/processor/BlurProcessor.java b/hoko-blur/src/main/java/com/hoko/blur/processor/BlurProcessor.java new file mode 100644 index 0000000000..ef00fb2cf9 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/processor/BlurProcessor.java @@ -0,0 +1,164 @@ +package com.hoko.blur.processor; + +import android.graphics.Bitmap; +import android.view.View; + +import com.hoko.blur.anno.Mode; +import com.hoko.blur.anno.Scheme; +import com.hoko.blur.api.IBlurProcessor; +import com.hoko.blur.api.IBlurResultDispatcher; +import com.hoko.blur.task.AsyncBlurTask; +import com.hoko.blur.task.BitmapAsyncBlurTask; +import com.hoko.blur.task.BlurTaskManager; +import com.hoko.blur.task.ViewAsyncBlurTask; +import com.hoko.blur.util.BitmapUtil; +import com.hoko.blur.util.Preconditions; + +import java.util.concurrent.Future; + +/** + * Created by yuxfzju on 16/9/8. + */ +public abstract class BlurProcessor implements IBlurProcessor { + + int mRadius; + + @Mode + int mMode; + + @Scheme + private int mScheme; + + private float mSampleFactor; + + private boolean mIsForceCopy; + + private boolean mNeedUpscale; + + private int mTranslateX; + private int mTranslateY; + + private IBlurResultDispatcher mDispatcher; + + public BlurProcessor(HokoBlurBuild builder) { + mMode = builder.mMode; + mScheme = builder.mScheme; + mRadius = builder.mRadius; + mSampleFactor = builder.mSampleFactor; + mIsForceCopy = builder.mIsForceCopy; + mNeedUpscale = builder.mNeedUpscale; + mTranslateX = builder.mTranslateX; + mTranslateY = builder.mTranslateY; + mDispatcher = builder.mDispatcher; + } + + public void mode(@Mode int mode) { + mMode = mode; + } + + public void radius(int radius) { + mRadius = radius; + } + + public void sampleFactor(float factor) { + mSampleFactor = factor; + } + + @Mode + public int mode() { + return mMode; + } + + public int radius() { + return mRadius; + } + + public float sampleFactor() { + return mSampleFactor; + } + + @Scheme + public int scheme() { + return mScheme; + } + + public boolean forceCopy() { + return mIsForceCopy; + } + + public boolean needUpscale() { + return mNeedUpscale; + } + + + public int translateX() { + return mTranslateX; + } + + public int translateY() { + return mTranslateY; + } + + @Override + public Bitmap blur(Bitmap bitmap) { + return doBlur(bitmap, true); + } + + private Bitmap doBlur(Bitmap bitmap, boolean concurrent) { + Preconditions.checkNotNull(bitmap, "bitmap == null"); + Preconditions.checkArgument(!bitmap.isRecycled(), "You must input an unrecycled bitmap !"); + + if (mRadius <= 0) { + mRadius = 1; + } + + if (mSampleFactor < 1.0f) { + mSampleFactor = 1.0f; + } + + Bitmap inBitmap = null; + + if (mIsForceCopy) { + inBitmap = bitmap.copy(bitmap.getConfig(), true); + } else { + inBitmap = bitmap; + } + + Bitmap transInBitmap = BitmapUtil.transformBitmap(inBitmap, translateX(), translateY()); + + Bitmap scaledInBitmap = BitmapUtil.getScaledBitmap(transInBitmap, sampleFactor()); + + Bitmap scaledOutBitmap = doInnerBlur(scaledInBitmap, concurrent); + + return mNeedUpscale ? BitmapUtil.getScaledBitmap(scaledOutBitmap, 1f / sampleFactor()) : scaledOutBitmap; + } + + + protected abstract Bitmap doInnerBlur(Bitmap scaledBitmap, boolean concurrent); + + @Override + public Bitmap blur(View view) { + Preconditions.checkNotNull(view, "You must input a view !"); + + Bitmap viewBitmap = BitmapUtil.getViewBitmap(view, translateX(), translateY(), sampleFactor()); + + Bitmap scaledOutBitmap = doInnerBlur(viewBitmap, true); + + return mNeedUpscale ? BitmapUtil.getScaledBitmap(scaledOutBitmap, 1f / sampleFactor()) : scaledOutBitmap; + } + + @Override + public Future asyncBlur(Bitmap bitmap, AsyncBlurTask.Callback callback) { + return BlurTaskManager.getInstance().submit(new BitmapAsyncBlurTask(this, bitmap, callback, mDispatcher)); + } + + @Override + public Future asyncBlur(View view, AsyncBlurTask.Callback callback) { + return BlurTaskManager.getInstance().submit(new ViewAsyncBlurTask(this, view, callback, mDispatcher)); + } + + protected void free() { + + } + +} \ No newline at end of file diff --git a/hoko-blur/src/main/java/com/hoko/blur/processor/BlurProcessorFactory.java b/hoko-blur/src/main/java/com/hoko/blur/processor/BlurProcessorFactory.java new file mode 100644 index 0000000000..d3e10e6ade --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/processor/BlurProcessorFactory.java @@ -0,0 +1,31 @@ +package com.hoko.blur.processor; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.anno.Scheme; + +class BlurProcessorFactory { + + static BlurProcessor getBlurProcessor(@Scheme int scheme, HokoBlurBuild builder) { + + BlurProcessor blurProcessor = null; + + switch (scheme) { + case HokoBlur.SCHEME_RENDER_SCRIPT: + blurProcessor = new RenderScriptBlurProcessor(builder); + break; + case HokoBlur.SCHEME_OPENGL: + blurProcessor = new OpenGLBlurProcessor(builder); + break; + case HokoBlur.SCHEME_NATIVE: + blurProcessor = new NativeBlurProcessor(builder); + break; + case HokoBlur.SCHEME_JAVA: + blurProcessor = new OriginBlurProcessor(builder); + break; + default: + throw new IllegalArgumentException("Unsupported blur scheme!"); + } + + return blurProcessor; + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/processor/HokoBlurBuild.java b/hoko-blur/src/main/java/com/hoko/blur/processor/HokoBlurBuild.java new file mode 100644 index 0000000000..93abcb13c0 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/processor/HokoBlurBuild.java @@ -0,0 +1,130 @@ +package com.hoko.blur.processor; + +import android.content.Context; +import android.graphics.Bitmap; +import android.view.View; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.anno.Mode; +import com.hoko.blur.anno.Scheme; +import com.hoko.blur.api.IBlurBuild; +import com.hoko.blur.api.IBlurResultDispatcher; +import com.hoko.blur.task.AsyncBlurTask; + +import java.util.concurrent.Future; + +import static com.hoko.blur.task.AndroidBlurResultDispatcher.MAIN_THREAD_DISPATCHER; + +public class HokoBlurBuild implements IBlurBuild { + + @Mode + int mMode = HokoBlur.MODE_STACK; + @Scheme + int mScheme = HokoBlur.SCHEME_NATIVE; + int mRadius = 5; + float mSampleFactor = 5.0f; + boolean mIsForceCopy = false; + boolean mNeedUpscale = true; + + int mTranslateX = 0; + int mTranslateY = 0; + + IBlurResultDispatcher mDispatcher = MAIN_THREAD_DISPATCHER; + + Context mCtx; + + public HokoBlurBuild(Context context) { + this.mCtx = context; + } + + + @Override + public IBlurBuild context(Context context) { + this.mCtx = context; + return this; + } + + @Override + public IBlurBuild mode(int mode) { + this.mMode = mode; + return this; + } + + @Override + public IBlurBuild scheme(int scheme) { + this.mScheme = scheme; + return this; + } + + @Override + public IBlurBuild radius(int radius) { + this.mRadius = radius; + return this; + } + + @Override + public IBlurBuild sampleFactor(float sampleFactor) { + this.mSampleFactor = sampleFactor; + return this; + } + + @Override + public IBlurBuild forceCopy(boolean isForceCopy) { + this.mIsForceCopy = isForceCopy; + return this; + } + + @Override + public IBlurBuild needUpscale(boolean needUpscale) { + this.mNeedUpscale = needUpscale; + return this; + } + + @Override + public IBlurBuild translateX(int translateX) { + this.mTranslateX = translateX; + return this; + } + + @Override + public IBlurBuild translateY(int translateY) { + this.mTranslateY = translateY; + return this; + } + + @Override + public IBlurBuild dispatcher(IBlurResultDispatcher dispatcher) { + mDispatcher = dispatcher; + return this; + } + + @Override + public BlurProcessor processor() { + return BlurProcessorFactory.getBlurProcessor(mScheme, this); + } + + @Override + public Bitmap blur(Bitmap bitmap) { + BlurProcessor processor = processor(); + return processor.blur(bitmap); + } + + @Override + public Bitmap blur(View view) { + BlurProcessor processor = processor(); + return processor.blur(view); + } + + @Override + public Future asyncBlur(Bitmap bitmap, AsyncBlurTask.Callback callback) { + BlurProcessor processor = processor(); + return processor.asyncBlur(bitmap, callback); + } + + @Override + public Future asyncBlur(View view, AsyncBlurTask.Callback callback) { + BlurProcessor processor = processor(); + return processor.asyncBlur(view, callback); + } + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/processor/NativeBlurProcessor.java b/hoko-blur/src/main/java/com/hoko/blur/processor/NativeBlurProcessor.java new file mode 100644 index 0000000000..0d493f0747 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/processor/NativeBlurProcessor.java @@ -0,0 +1,70 @@ +package com.hoko.blur.processor; + +import android.graphics.Bitmap; +import android.util.Log; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.filter.NativeBlurFilter; +import com.hoko.blur.task.BlurSubTask; +import com.hoko.blur.task.BlurTaskManager; +import com.hoko.blur.util.Preconditions; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by yuxfzju on 16/9/7. + */ +class NativeBlurProcessor extends BlurProcessor { + private static final String TAG = NativeBlurProcessor.class.getSimpleName(); + private static boolean LIB_LOADED; + + NativeBlurProcessor(HokoBlurBuild builder) { + super(builder); + } + + @Override + protected Bitmap doInnerBlur(Bitmap scaledInBitmap, boolean concurrent) { + Preconditions.checkNotNull(scaledInBitmap, "scaledInBitmap == null"); + + if (!LIB_LOADED) { + Log.e(TAG, "Native blur library is not loaded"); + return scaledInBitmap; + } + + try { + if (concurrent) { + int cores = BlurTaskManager.getWorkersNum(); + List hTasks = new ArrayList<>(cores); + List vTasks = new ArrayList<>(cores); + + for (int i = 0; i < cores; i++) { + hTasks.add(new BlurSubTask(HokoBlur.SCHEME_NATIVE, mMode, scaledInBitmap, mRadius, cores, i, HokoBlur.HORIZONTAL)); + vTasks.add(new BlurSubTask(HokoBlur.SCHEME_NATIVE, mMode, scaledInBitmap, mRadius, cores, i, HokoBlur.VERTICAL)); + } + + BlurTaskManager.getInstance().invokeAll(hTasks); + BlurTaskManager.getInstance().invokeAll(vTasks); + } else { + NativeBlurFilter.doFullBlur(mMode, scaledInBitmap, mRadius); + } + } catch (Throwable e) { + Log.e(TAG, "Blur the bitmap error", e); + } + + return scaledInBitmap; + } + + + static { + try { + System.loadLibrary("hoko_blur"); + LIB_LOADED = true; + } catch (Throwable t) { + LIB_LOADED = false; + Log.e(TAG, "Failed to load the hoko blur native library", t); + } + } + + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/processor/OpenGLBlurProcessor.java b/hoko-blur/src/main/java/com/hoko/blur/processor/OpenGLBlurProcessor.java new file mode 100644 index 0000000000..9b6d612b74 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/processor/OpenGLBlurProcessor.java @@ -0,0 +1,44 @@ +package com.hoko.blur.processor; + +import android.graphics.Bitmap; + +import com.hoko.blur.opengl.offscreen.EglBuffer; +import com.hoko.blur.util.Preconditions; + + +/** + * Created by yuxfzju on 16/9/7. + */ +class OpenGLBlurProcessor extends BlurProcessor { + private static final String TAG = OpenGLBlurProcessor.class.getSimpleName(); + + private final EglBuffer mEglBuffer; + + OpenGLBlurProcessor(HokoBlurBuild builder) { + super(builder); + mEglBuffer = new EglBuffer(); + + } + + @Override + protected Bitmap doInnerBlur(Bitmap scaledInBitmap, boolean concurrent) { + Preconditions.checkNotNull(scaledInBitmap, "scaledInBitmap == null"); + Preconditions.checkArgument(!scaledInBitmap.isRecycled(), "You must input an unrecycled bitmap !"); + + // TODO: 2017/2/20 opengl process parallel + mEglBuffer.setBlurRadius(mRadius); + mEglBuffer.setBlurMode(mMode); + return mEglBuffer.getBlurBitmap(scaledInBitmap); + } + + @Override + protected void free() { + mEglBuffer.free(); + } + + @Override + protected void finalize() throws Throwable { + free(); + super.finalize(); + } +} \ No newline at end of file diff --git a/hoko-blur/src/main/java/com/hoko/blur/processor/OriginBlurProcessor.java b/hoko-blur/src/main/java/com/hoko/blur/processor/OriginBlurProcessor.java new file mode 100644 index 0000000000..1beb67cac6 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/processor/OriginBlurProcessor.java @@ -0,0 +1,51 @@ +package com.hoko.blur.processor; + +import android.graphics.Bitmap; +import android.util.Log; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.filter.OriginBlurFilter; +import com.hoko.blur.task.BlurSubTask; +import com.hoko.blur.task.BlurTaskManager; +import com.hoko.blur.util.Preconditions; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by yuxfzju on 16/9/7. + */ +class OriginBlurProcessor extends BlurProcessor { + private static final String TAG = OriginBlurProcessor.class.getSimpleName(); + + OriginBlurProcessor(HokoBlurBuild builder) { + super(builder); + } + + @Override + protected Bitmap doInnerBlur(Bitmap scaledInBitmap, boolean concurrent) { + Preconditions.checkNotNull(scaledInBitmap, "scaledInBitmap == null"); + try { + if (concurrent) { + int cores = BlurTaskManager.getWorkersNum(); + List hTasks = new ArrayList<>(cores); + List vTasks = new ArrayList<>(cores); + + for (int i = 0; i < cores; i++) { + hTasks.add(new BlurSubTask(HokoBlur.SCHEME_JAVA, mMode, scaledInBitmap, mRadius, cores, i, HokoBlur.HORIZONTAL)); + vTasks.add(new BlurSubTask(HokoBlur.SCHEME_JAVA, mMode, scaledInBitmap, mRadius, cores, i, HokoBlur.VERTICAL)); + } + + BlurTaskManager.getInstance().invokeAll(hTasks); + BlurTaskManager.getInstance().invokeAll(vTasks); + } else { + OriginBlurFilter.doFullBlur(mMode, scaledInBitmap, mRadius); + } + } catch (Throwable e) { + Log.e(TAG, "Blur the bitmap error", e); + } + return scaledInBitmap; + } + +} + diff --git a/hoko-blur/src/main/java/com/hoko/blur/processor/RenderScriptBlurProcessor.java b/hoko-blur/src/main/java/com/hoko/blur/processor/RenderScriptBlurProcessor.java new file mode 100644 index 0000000000..efe183aa3a --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/processor/RenderScriptBlurProcessor.java @@ -0,0 +1,151 @@ +package com.hoko.blur.processor; + +import android.content.Context; +import android.graphics.Bitmap; +import android.support.v8.renderscript.Allocation; +import android.support.v8.renderscript.Element; +import android.support.v8.renderscript.RSRuntimeException; +import android.support.v8.renderscript.RenderScript; +import android.support.v8.renderscript.ScriptIntrinsicBlur; +import android.util.Log; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.renderscript.ScriptC_BoxBlur; +import com.hoko.blur.renderscript.ScriptC_StackBlur; +import com.hoko.blur.util.MathUtil; +import com.hoko.blur.util.Preconditions; + +/** + * Created by yuxfzju on 16/9/7. + */ +class RenderScriptBlurProcessor extends BlurProcessor { + private static final String TAG = RenderScriptBlurProcessor.class.getSimpleName(); + + private RenderScript mRenderScript; + private ScriptIntrinsicBlur mGaussianBlurScript; + private ScriptC_BoxBlur mBoxBlurScript; + private ScriptC_StackBlur mStackBlurScript; + + private static final int RS_MAX_RADIUS = 25; + + private volatile boolean rsRuntimeInited = false; + + RenderScriptBlurProcessor(HokoBlurBuild builder) { + super(builder); + init(builder.mCtx); + } + + private void init(Context context) { + Preconditions.checkNotNull(context, "Please set context for renderscript scheme, forget to set context for builder?"); + + try { + mRenderScript = RenderScript.create(context.getApplicationContext()); + mGaussianBlurScript = ScriptIntrinsicBlur.create(mRenderScript, Element.U8_4(mRenderScript)); + mBoxBlurScript = new ScriptC_BoxBlur(mRenderScript); + mStackBlurScript = new ScriptC_StackBlur(mRenderScript); + rsRuntimeInited = true; + } catch (RSRuntimeException e) { + Log.e(TAG, "Failed to init RenderScript runtime", e); + rsRuntimeInited = false; + } + + } + + + /** + * RenderScript built-in parallel implementation + * + * @param bitmap + * @param concurrent + * @return + */ + @Override + protected Bitmap doInnerBlur(Bitmap bitmap, boolean concurrent) { + Preconditions.checkNotNull(bitmap, "scaledInBitmap == null"); + + if (!rsRuntimeInited) { + Log.e(TAG, "RenderScript Runtime is not initialized"); + return bitmap; + } + + + Allocation allocationIn = Allocation.createFromBitmap(mRenderScript, bitmap); + Allocation allocationOut = Allocation.createFromBitmap(mRenderScript, Bitmap.createBitmap(bitmap)); + try { + switch (mMode) { + case HokoBlur.MODE_BOX: + doBoxBlur(bitmap, allocationIn, allocationOut); + allocationIn.copyTo(bitmap); + + break; + case HokoBlur.MODE_STACK: + doStackBlur(bitmap, allocationIn, allocationOut); + allocationIn.copyTo(bitmap); + + break; + case HokoBlur.MODE_GAUSSIAN: + doGaussianBlur(allocationIn, allocationOut); + allocationOut.copyTo(bitmap); + + break; + } + + } catch (Throwable e) { + Log.e(TAG, "Blur the bitmap error", e); + } finally { + allocationIn.destroy(); + allocationOut.destroy(); + } + + return bitmap; + } + + + private void doBoxBlur(Bitmap input, Allocation in, Allocation out) { + if (mBoxBlurScript == null) { + throw new IllegalStateException("The blur script is unavailable"); + } + + mBoxBlurScript.set_input(in); + mBoxBlurScript.set_output(out); + mBoxBlurScript.set_width(input.getWidth()); + mBoxBlurScript.set_height(input.getHeight()); + mBoxBlurScript.set_radius(mRadius); + mBoxBlurScript.forEach_boxblur_h(in); + + mBoxBlurScript.set_input(out); + mBoxBlurScript.set_output(in); + mBoxBlurScript.forEach_boxblur_v(out); + + } + + private void doGaussianBlur(Allocation in, Allocation out) { + if (mGaussianBlurScript == null) { + throw new IllegalStateException("The blur script is unavailable"); + } + // RenderScript won't work, if too large blur radius + mRadius = MathUtil.clamp(mRadius, 0, RS_MAX_RADIUS); + mGaussianBlurScript.setRadius(mRadius); +// mAllocationIn.copyFrom(input); + mGaussianBlurScript.setInput(in); + mGaussianBlurScript.forEach(out); + } + + private void doStackBlur(Bitmap input, Allocation in, Allocation out) { + if (mStackBlurScript == null) { + throw new IllegalStateException("The blur script is unavailable"); + } + + mStackBlurScript.set_input(in); + mStackBlurScript.set_output(out); + mStackBlurScript.set_width(input.getWidth()); + mStackBlurScript.set_height(input.getHeight()); + mStackBlurScript.set_radius(mRadius); + mStackBlurScript.forEach_stackblur_v(in); + + mStackBlurScript.set_input(out); + mStackBlurScript.set_output(in); + mStackBlurScript.forEach_stackblur_h(out); + } + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/task/AndroidBlurResultDispatcher.java b/hoko-blur/src/main/java/com/hoko/blur/task/AndroidBlurResultDispatcher.java new file mode 100644 index 0000000000..cc2c9dcbb3 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/task/AndroidBlurResultDispatcher.java @@ -0,0 +1,30 @@ +package com.hoko.blur.task; + +import com.hoko.blur.api.IBlurResultDispatcher; +import com.hoko.blur.util.SingleMainHandler; + +import java.util.concurrent.Executor; + +/** + * Created by yuxfzju on 2017/2/7. + */ + +public class AndroidBlurResultDispatcher implements IBlurResultDispatcher { + + public static final IBlurResultDispatcher MAIN_THREAD_DISPATCHER = new AndroidBlurResultDispatcher(SingleMainHandler.get()); + + private Executor mResultPoster; + + public AndroidBlurResultDispatcher(final android.os.Handler handler) { + mResultPoster = command -> { + if (handler != null) { + handler.post(command); + } + }; + } + + @Override + public void dispatch(BlurResultRunnable runnable) { + mResultPoster.execute(runnable); + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/task/AsyncBlurTask.java b/hoko-blur/src/main/java/com/hoko/blur/task/AsyncBlurTask.java new file mode 100644 index 0000000000..659846c5bc --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/task/AsyncBlurTask.java @@ -0,0 +1,59 @@ +package com.hoko.blur.task; + +import android.graphics.Bitmap; + +import com.hoko.blur.api.IBlurProcessor; +import com.hoko.blur.api.IBlurResultDispatcher; +import com.hoko.blur.util.Preconditions; + +/** + * a wrapper class for async blur task + * Created by yuxfzju on 2017/2/6. + */ + +public abstract class AsyncBlurTask implements Runnable { + private Callback mCallback; + + IBlurProcessor mProcessor; + + private T mTarget; + + private IBlurResultDispatcher mResultDispatcher; + + public AsyncBlurTask(IBlurProcessor processor, T target, Callback callback, IBlurResultDispatcher dispatcher) { + mProcessor = processor; + mTarget = target; + mCallback = callback; + mResultDispatcher = dispatcher; + } + + @Override + public void run() { + BlurResult result = new BlurResult(mCallback); + try { + if (mProcessor == null) { + result.setSuccess(false); + return; + } + + result.setBitmap(makeBlur(mTarget)); + result.setSuccess(true); + } catch (Throwable e) { + e.printStackTrace(); + result.setSuccess(false); + result.setError(e); + } finally { + Preconditions.checkNotNull(mResultDispatcher, "dispatcher == null"); + mResultDispatcher.dispatch(BlurResultRunnable.of(result)); + } + + } + + protected abstract Bitmap makeBlur(T target); + + public interface Callback { + void onBlurSuccess(Bitmap bitmap); + + void onBlurFailed(Throwable error); + } +} \ No newline at end of file diff --git a/hoko-blur/src/main/java/com/hoko/blur/task/BitmapAsyncBlurTask.java b/hoko-blur/src/main/java/com/hoko/blur/task/BitmapAsyncBlurTask.java new file mode 100644 index 0000000000..1e633aeae2 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/task/BitmapAsyncBlurTask.java @@ -0,0 +1,17 @@ +package com.hoko.blur.task; + +import android.graphics.Bitmap; + +import com.hoko.blur.api.IBlurProcessor; +import com.hoko.blur.api.IBlurResultDispatcher; + +public class BitmapAsyncBlurTask extends AsyncBlurTask { + public BitmapAsyncBlurTask(IBlurProcessor processor, Bitmap bitmap, Callback callback, IBlurResultDispatcher dispatcher) { + super(processor, bitmap, callback, dispatcher); + } + + @Override + protected Bitmap makeBlur(Bitmap target) { + return mProcessor.blur(target); + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/task/BlurResult.java b/hoko-blur/src/main/java/com/hoko/blur/task/BlurResult.java new file mode 100644 index 0000000000..98b7547413 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/task/BlurResult.java @@ -0,0 +1,49 @@ +package com.hoko.blur.task; + +import android.graphics.Bitmap; + +/** + * Created by yuxfzju on 2017/2/7. + */ + +public class BlurResult { + private boolean success; + + private Bitmap bitmap; + + private AsyncBlurTask.Callback callback; + + private Throwable e; + + public BlurResult(AsyncBlurTask.Callback callback) { + this.callback = callback; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public Bitmap getBitmap() { + return bitmap; + } + + public void setBitmap(Bitmap bitmap) { + this.bitmap = bitmap; + } + + public AsyncBlurTask.Callback getCallback() { + return callback; + } + + public Throwable getError() { + return e; + } + + public void setError(Throwable e) { + this.e = e; + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/task/BlurResultRunnable.java b/hoko-blur/src/main/java/com/hoko/blur/task/BlurResultRunnable.java new file mode 100644 index 0000000000..1e888fa7db --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/task/BlurResultRunnable.java @@ -0,0 +1,33 @@ +package com.hoko.blur.task; + +/** + * Created by yuxfzju on 2017/2/7. + */ + +public class BlurResultRunnable implements Runnable { + + private BlurResult mResult; + + private BlurResultRunnable(BlurResult result) { + mResult = result; + } + + public static BlurResultRunnable of(BlurResult result) { + return new BlurResultRunnable(result); + } + + @Override + public void run() { + if (mResult != null) { + if (mResult.isSuccess()) { + if (mResult.getCallback() != null) { + mResult.getCallback().onBlurSuccess(mResult.getBitmap()); + } + } else { + if (mResult.getCallback() != null) { + mResult.getCallback().onBlurFailed(mResult.getError()); + } + } + } + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/task/BlurSubTask.java b/hoko-blur/src/main/java/com/hoko/blur/task/BlurSubTask.java new file mode 100644 index 0000000000..8be0f8cf5f --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/task/BlurSubTask.java @@ -0,0 +1,74 @@ +package com.hoko.blur.task; + +import android.graphics.Bitmap; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.anno.Direction; +import com.hoko.blur.anno.Mode; +import com.hoko.blur.anno.Scheme; +import com.hoko.blur.filter.NativeBlurFilter; +import com.hoko.blur.filter.OriginBlurFilter; +import com.hoko.blur.util.Preconditions; + +import java.util.concurrent.Callable; + +/** + * Every bitmap blur sub task only process a partition of bitmap. + * Just blur a bitmap in parallel + *

+ * Created by yuxfzju on 2017/2/17. + */ + +public class BlurSubTask implements Callable { + + @Scheme + private final int mScheme; + @Mode + private final int mMode; + private final Bitmap mBitmapOut; + private final int mRadius; + private final int mIndex; + private final int mCores; + + @Direction + private final int mDirection; + + public BlurSubTask(@Scheme int scheme, @Mode int mode, Bitmap bitmapOut, int radius, int cores, int index, @Direction int direction) { + mScheme = scheme; + mMode = mode; + mBitmapOut = bitmapOut; + mRadius = radius; + mIndex = index; + mCores = cores; + mDirection = direction; + } + + @Override + public Void call() { + Preconditions.checkNotNull(mBitmapOut, "mBitmapOut == null"); + Preconditions.checkArgument(!mBitmapOut.isRecycled(), "You must input an unrecycled bitmap !"); + Preconditions.checkArgument(mCores > 0, "mCores < 0"); + + applyPixelsBlur(); + + return null; + } + + private void applyPixelsBlur() { + switch (mScheme) { + case HokoBlur.SCHEME_NATIVE: + NativeBlurFilter.doBlur(mMode, mBitmapOut, mRadius, mCores, mIndex, mDirection); + break; + case HokoBlur.SCHEME_JAVA: + OriginBlurFilter.doBlur(mMode, mBitmapOut, mRadius, mCores, mIndex, mDirection); + break; + case HokoBlur.SCHEME_OPENGL: + throw new UnsupportedOperationException("Blur in parallel not supported !"); + case HokoBlur.SCHEME_RENDER_SCRIPT: + //RenderScript support built-in parallel computation + break; + default: + break; + } + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/task/BlurTaskManager.java b/hoko-blur/src/main/java/com/hoko/blur/task/BlurTaskManager.java new file mode 100644 index 0000000000..1b1ce9e972 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/task/BlurTaskManager.java @@ -0,0 +1,57 @@ +package com.hoko.blur.task; + +import android.util.Log; + +import com.hoko.blur.util.Preconditions; + +import java.util.Collection; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; + +/** + * Created by yuxfzju on 2017/2/7. + */ + +public final class BlurTaskManager { + private static final String TAG = BlurTaskManager.class.getSimpleName(); + + //Threads count is a half of cpu cores + private static final int EXECUTOR_THREADS = Runtime.getRuntime().availableProcessors() <= 3 ? + 1 : Runtime.getRuntime().availableProcessors() / 2; + + private static final ExecutorService ASYNC_BLUR_EXECUTOR = Executors.newFixedThreadPool(EXECUTOR_THREADS); + + private static final ExecutorService CONCURRENT_BLUR_EXECUTOR = Executors.newFixedThreadPool(EXECUTOR_THREADS); + + private static class BlurTaskManagerHolder { + private static final BlurTaskManager INSTANCE = new BlurTaskManager(); + } + + private BlurTaskManager() { + } + + public static BlurTaskManager getInstance() { + return BlurTaskManagerHolder.INSTANCE; + } + + public Future submit(AsyncBlurTask task) { + Preconditions.checkNotNull(task, "task == null"); + return ASYNC_BLUR_EXECUTOR.submit(task); + } + + public void invokeAll(Collection tasks) { + Preconditions.checkNotNull(tasks, "tasks == null"); + if (tasks.size() > 0) { + try { + CONCURRENT_BLUR_EXECUTOR.invokeAll(tasks); + } catch (InterruptedException e) { + Log.e(TAG, "invoke blur sub tasks error", e); + } + } + } + + public static int getWorkersNum() { + return EXECUTOR_THREADS; + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/task/ViewAsyncBlurTask.java b/hoko-blur/src/main/java/com/hoko/blur/task/ViewAsyncBlurTask.java new file mode 100644 index 0000000000..701143824e --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/task/ViewAsyncBlurTask.java @@ -0,0 +1,18 @@ +package com.hoko.blur.task; + +import android.graphics.Bitmap; +import android.view.View; + +import com.hoko.blur.api.IBlurProcessor; +import com.hoko.blur.api.IBlurResultDispatcher; + +public class ViewAsyncBlurTask extends AsyncBlurTask { + public ViewAsyncBlurTask(IBlurProcessor processor, View target, Callback callback, IBlurResultDispatcher dispatcher) { + super(processor, target, callback, dispatcher); + } + + @Override + protected Bitmap makeBlur(View target) { + return mProcessor.blur(target); + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/util/BitmapUtil.java b/hoko-blur/src/main/java/com/hoko/blur/util/BitmapUtil.java new file mode 100644 index 0000000000..fd4c5fea32 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/util/BitmapUtil.java @@ -0,0 +1,81 @@ +package com.hoko.blur.util; + +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Matrix; +import android.graphics.drawable.ColorDrawable; +import android.view.View; + +/** + * Created by yuxfzju on 16/9/12. + */ +public class BitmapUtil { + public static Bitmap getScaledBitmap(Bitmap bitmap, float factor) { + if (bitmap == null) { + return null; + } + + if (factor == 1.0f) { + return bitmap; + } + + final int width = bitmap.getWidth(); + final int height = bitmap.getHeight(); + + final float ratio = 1f / factor; + + Matrix matrix = new Matrix(); + matrix.postScale(ratio, ratio); + return Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true); + } + + /** + * get bitmap from a view + */ + public static Bitmap getViewBitmap(View view, int translateX, int translateY, float sampleFactor) { + final float scale = 1.0f / sampleFactor; + + final int width = view.getWidth(); + final int height = view.getHeight(); + + final int downScaledWidth = (int) ((width - translateX) * scale); + final int downScaledHeight = (int) ((height - translateY) * scale); + + Bitmap bitmap = Bitmap.createBitmap(downScaledWidth, downScaledHeight, Bitmap.Config.ARGB_8888); + + if (view.getBackground() != null && view.getBackground() instanceof ColorDrawable) { + bitmap.eraseColor(((ColorDrawable) view.getBackground()).getColor()); + } else { + bitmap.eraseColor(Color.parseColor("#f6f6f6")); + } + + Canvas canvas = new Canvas(bitmap); + canvas.translate( + -(int) (translateX * scale), -(int) (translateY * scale) + ); + if (sampleFactor > 1.0f) { + canvas.scale(scale, scale); + } + + view.draw(canvas); + + return bitmap; + } + + public static Bitmap transformBitmap(Bitmap bitmap, int translateX, int translateY) { + + if (translateX == 0 && translateY == 0) { + return bitmap; + } + + return Bitmap.createBitmap(bitmap, translateX, translateY, bitmap.getWidth() - translateX, bitmap.getHeight() - translateY); + } + + + public static synchronized native void replaceBitmap(Bitmap bitmap, int[] pixels, int x, int y, int deltaX, int deltaY); + + static { + System.loadLibrary("hoko_blur"); + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/util/MathUtil.java b/hoko-blur/src/main/java/com/hoko/blur/util/MathUtil.java new file mode 100644 index 0000000000..4bb85eaf03 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/util/MathUtil.java @@ -0,0 +1,17 @@ +package com.hoko.blur.util; + +/** + * Created by yuxfzju on 2017/2/3. + */ + +public class MathUtil { + public static int clamp(int i, int minValue, int maxValue) { + if (i < minValue) { + return minValue; + } else if (i > maxValue) { + return maxValue; + } else { + return i; + } + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/util/Preconditions.java b/hoko-blur/src/main/java/com/hoko/blur/util/Preconditions.java new file mode 100644 index 0000000000..7ff0ee2de3 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/util/Preconditions.java @@ -0,0 +1,36 @@ +package com.hoko.blur.util; + +import android.support.annotation.Nullable; + +public class Preconditions { + /** + * Ensures that an object reference passed as a parameter to the calling method is not null. + * + * @param reference an object reference + * @param errorMessage the exception message to use if the check fails; will be converted to a + * string using {@link String#valueOf(Object)} + * @return the non-null reference that was validated + * @throws NullPointerException if {@code reference} is null + */ + public static T checkNotNull(T reference, @Nullable Object errorMessage) { + if (reference == null) { + throw new NullPointerException(String.valueOf(errorMessage)); + } + return reference; + } + + /** + * Ensures the truth of an expression involving one or more parameters to the calling method. + * + * @param expression a boolean expression + * @param errorMessage the exception message to use if the check fails; will be converted to a + * string using {@link String#valueOf(Object)} + * @throws IllegalArgumentException if {@code expression} is false + */ + public static void checkArgument(boolean expression, @Nullable Object errorMessage) { + if (!expression) { + throw new IllegalArgumentException(String.valueOf(errorMessage)); + } + } + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/util/ShaderUtil.java b/hoko-blur/src/main/java/com/hoko/blur/util/ShaderUtil.java new file mode 100644 index 0000000000..d349fb9402 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/util/ShaderUtil.java @@ -0,0 +1,165 @@ +package com.hoko.blur.util; + +import android.opengl.GLES20; +import android.util.Log; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.anno.Mode; + +/** + * Created by yuxfzju on 16/9/4. + */ +public class ShaderUtil { + + private static final String TAG = ShaderUtil.class.getSimpleName(); + + public static String getVertexCode() { + StringBuilder sb = new StringBuilder(); + + sb.append("uniform mat4 uMVPMatrix; \n") + .append("uniform mat4 uTexMatrix; \n") + .append("attribute vec2 aTexCoord; \n") + .append("attribute vec3 aPosition; \n") + .append("varying vec2 vTexCoord; \n") + .append("void main() { \n") + .append(" gl_Position = uMVPMatrix * vec4(aPosition, 1); \n") + .append(" vTexCoord = (uTexMatrix * vec4(aTexCoord, 1, 1)).st;\n") + .append("} \n"); + + return sb.toString(); + + } + + /** + * return true if no GL Error + */ + public static boolean checkGLError(String msg) { + int error = GLES20.glGetError(); + if (error != 0) { + Log.e(TAG, "checkGLError: error=" + error + ", msg=" + msg); + } + + return error == 0; + } + + public static String getFragmentShaderCode(@Mode int mode) { + + StringBuilder sb = new StringBuilder(); + sb.append(" \n") + .append("precision mediump float; \n") + .append("varying vec2 vTexCoord; \n") + .append("uniform sampler2D uTexture; \n") + .append("uniform int uRadius; \n") + .append("uniform float uWidthOffset; \n") + .append("uniform float uHeightOffset; \n") + .append("mediump float getGaussWeight(mediump float currentPos, mediump float sigma) \n") + .append("{ \n") + .append(" return 1.0 / sigma * exp(-(currentPos * currentPos) / (2.0 * sigma * sigma)); \n") + .append("} \n") + .append("void main() { \n"); + + if (mode == HokoBlur.MODE_BOX) { + sb.append(ShaderUtil.getBoxSampleCode()); + } else if (mode == HokoBlur.MODE_GAUSSIAN) { + sb.append(ShaderUtil.getGaussianSampleCode()); + } else if (mode == HokoBlur.MODE_STACK) { + sb.append(ShaderUtil.getStackSampleCode()); + } + sb.append("} \n"); + + return sb.toString(); + } + + + /** + * If set kernel weight array in advance, the GPU registers have no enough space. + * So compute the weight in the code directly. + */ + private static String getGaussianSampleCode() { + + StringBuilder sb = new StringBuilder(); + + sb.append(" int diameter = 2 * uRadius + 1; \n") + .append(" vec4 sampleTex = vec4(0, 0, 0, 0);\n") + .append(" vec3 col = vec3(0, 0, 0); \n") + .append(" float weightSum = 0.0; \n") + .append(" for(int i = 0; i < diameter; i++) {\n") + .append(" vec2 offset = vec2(float(i - uRadius) * uWidthOffset, float(i - uRadius) * uHeightOffset); \n") + .append(" sampleTex = vec4(texture2D(uTexture, vTexCoord.st+offset));\n") + .append(" float index = float(i); \n") + .append(" float gaussWeight = getGaussWeight(index - float(diameter - 1)/2.0,") + .append(" (float(diameter - 1)/2.0 + 1.0) / 2.0); \n") + .append(" col += sampleTex.rgb * gaussWeight; \n") + .append(" weightSum += gaussWeight;\n") + .append(" } \n") + .append(" gl_FragColor = vec4(col / weightSum, sampleTex.a); \n"); + + return sb.toString(); + } + + /** + * If set kernel weight array in advance, the GPU registers have no enough space. + * So compute the weight in the code directly. + */ + private static String getBoxSampleCode() { + StringBuilder sb = new StringBuilder(); + + sb.append(" int diameter = 2 * uRadius + 1; \n") + .append(" vec4 sampleTex = vec4(0, 0, 0, 0);\n") + .append(" vec3 col = vec3(0, 0, 0); \n") + .append(" float weightSum = 0.0; \n") + .append(" for(int i = 0; i < diameter; i++) {\n") + .append(" vec2 offset = vec2(float(i - uRadius) * uWidthOffset, float(i - uRadius) * uHeightOffset); \n") + .append(" sampleTex = vec4(texture2D(uTexture, vTexCoord.st+offset));\n") + .append(" float index = float(i); \n") + .append(" float boxWeight = float(1.0) / float(diameter); \n") + .append(" col += sampleTex.rgb * boxWeight; \n") + .append(" weightSum += boxWeight;\n") + .append(" } \n") + .append(" gl_FragColor = vec4(col / weightSum, sampleTex.a); \n"); + return sb.toString(); + } + + /** + * If set kernel weight array in advance, the GPU registers have no enough space. + * So compute the weight in the code directly. + */ + private static String getStackSampleCode() { + StringBuilder sb = new StringBuilder(); + + sb.append("int diameter = 2 * uRadius + 1; \n") + .append(" vec4 sampleTex = vec4(0, 0, 0, 0);\n") + .append(" vec3 col = vec3(0, 0, 0); \n") + .append(" float weightSum = 0.0; \n") + .append(" for(int i = 0; i < diameter; i++) {\n") + .append(" vec2 offset = vec2(float(i - uRadius) * uWidthOffset, float(i - uRadius) * uHeightOffset); \n") + .append(" sampleTex = vec4(texture2D(uTexture, vTexCoord.st+offset));\n") + .append(" float index = float(i); \n") + .append(" float boxWeight = float(uRadius) + 1.0 - abs(index - float(uRadius)); \n") + .append(" col += sampleTex.rgb * boxWeight; \n") + .append(" weightSum += boxWeight;\n") + .append(" } \n") + .append(" gl_FragColor = vec4(col / weightSum, sampleTex.a); \n"); + + return sb.toString(); + } + + /** + * copy the texture + */ + public static String getCopyFragmentCode() { + StringBuilder sb = new StringBuilder(); + sb.append(" \n") + .append("precision mediump float;") + .append("varying vec2 vTexCoord; \n") + .append("uniform sampler2D uTexture; \n") + .append("uniform lowp float mixPercent; \n") + .append("uniform vec4 vMixColor; \n") + .append("void main() { \n") + .append(" vec4 col = vec4(texture2D(uTexture, vTexCoord.st));\n") + .append(" gl_FragColor = vec4(mix(col.rgb, vMixColor.rgb, vMixColor.a * mixPercent), col.a); \n") + .append("} \n"); + return sb.toString(); + } + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/util/SingleMainHandler.java b/hoko-blur/src/main/java/com/hoko/blur/util/SingleMainHandler.java new file mode 100644 index 0000000000..2e4cc8efd9 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/util/SingleMainHandler.java @@ -0,0 +1,20 @@ +package com.hoko.blur.util; + + +import android.os.Handler; +import android.os.Looper; + +/** + * Created by yuxfzju on 2017/2/7. + */ + +public class SingleMainHandler { + + private static class MainHandlerHolder { + private static Handler sMainHandler = new Handler(Looper.getMainLooper()); + } + + public static Handler get() { + return MainHandlerHolder.sMainHandler; + } +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/view/DragBlurringView.java b/hoko-blur/src/main/java/com/hoko/blur/view/DragBlurringView.java new file mode 100644 index 0000000000..4d51c7a410 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/view/DragBlurringView.java @@ -0,0 +1,139 @@ +package com.hoko.blur.view; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.api.IBlurProcessor; + + +/** + * Created by yuxfzju on 16/8/20. + */ +public class DragBlurringView extends View { + + private static final int DOWNSAMPLE_FACTOR = 5; + + private float mOldX; + private float mOldY; + + private View mBlurredView; + + private Bitmap mToBlurBitmap; + private Canvas mBlurringCanvas; + private IBlurProcessor mProcessor; + + public DragBlurringView(Context context) { + super(context); + init(); + + } + + public DragBlurringView(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + + private void init() { + mProcessor = HokoBlur.with(getContext()) + .scheme(HokoBlur.SCHEME_NATIVE) + .mode(HokoBlur.MODE_GAUSSIAN) + .radius(5) + .sampleFactor(1.0f) + .processor(); + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + + if (mBlurredView != null) { + + if (prepare()) { + + if (mBlurredView.getBackground() != null && mBlurredView.getBackground() instanceof ColorDrawable) { + mToBlurBitmap.eraseColor(((ColorDrawable) mBlurredView.getBackground()).getColor()); + } else { + mToBlurBitmap.eraseColor(Color.TRANSPARENT); + } + + mBlurredView.draw(mBlurringCanvas); + Bitmap blurredBitmap = mProcessor.blur(mToBlurBitmap); + + canvas.save(); + canvas.translate(mBlurredView.getX() - getX(), mBlurredView.getY() - getY()); + canvas.scale(DOWNSAMPLE_FACTOR, DOWNSAMPLE_FACTOR); + canvas.drawBitmap(blurredBitmap, 0, 0, null); + canvas.restore(); + } + + } + + } + + private boolean prepare() { + final int width = mBlurredView.getWidth(); + final int height = mBlurredView.getHeight(); + + if (mBlurringCanvas == null) { + + int scaledWidth = width / DOWNSAMPLE_FACTOR; + int scaleHeight = height / DOWNSAMPLE_FACTOR; + + if (mToBlurBitmap == null) { + mToBlurBitmap = Bitmap.createBitmap(scaledWidth, scaleHeight, Bitmap.Config.ARGB_8888); + } + + if (mToBlurBitmap == null) { + return false; + } + + mBlurringCanvas = new Canvas(mToBlurBitmap); + mBlurringCanvas.scale(1.0f / DOWNSAMPLE_FACTOR, 1.0f / DOWNSAMPLE_FACTOR); + } + + return true; + } + + + public void setBlurredView(View blurredView) { + mBlurredView = blurredView; + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + switch (event.getActionMasked()) { + case MotionEvent.ACTION_DOWN: + mOldX = event.getRawX(); + mOldY = event.getRawY(); + return true; + + case MotionEvent.ACTION_MOVE: + float dx = event.getRawX() - mOldX; + float dy = event.getRawY() - mOldY; + offsetLeftAndRight((int) dx); + offsetTopAndBottom((int) dy); + mOldX = event.getRawX(); + mOldY = event.getRawY(); + invalidate(); + break; + + case MotionEvent.ACTION_CANCEL: + case MotionEvent.ACTION_UP: + break; + + } + + + return super.onTouchEvent(event); + } + + +} diff --git a/hoko-blur/src/main/java/com/hoko/blur/view/RsBlurLinearLayout.java b/hoko-blur/src/main/java/com/hoko/blur/view/RsBlurLinearLayout.java new file mode 100644 index 0000000000..41398b5eb6 --- /dev/null +++ b/hoko-blur/src/main/java/com/hoko/blur/view/RsBlurLinearLayout.java @@ -0,0 +1,116 @@ +package com.hoko.blur.view; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Matrix; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewTreeObserver; +import android.widget.LinearLayout; + +import com.hoko.blur.HokoBlur; +import com.hoko.blur.processor.BlurProcessor; + +/** + * Created by yuxfzju on 16/9/18. + */ +public class RsBlurLinearLayout extends LinearLayout { + + private static final int DEFAULT_BLUR_RADIUS = 5; + + private static final float DEFAULT_BITMAP_SAMPLE_FACTOR = 5.0f; + + private int[] mLocationInWindow; + + private BlurProcessor mProcessor; + + private Bitmap mBitmap; + + private Canvas mCanvas; + + private final ViewTreeObserver.OnPreDrawListener mOnPreDrawListener = () -> { + if (getVisibility() == View.VISIBLE) { + prepare(); + } + return true; + }; + + public RsBlurLinearLayout(Context context) { + super(context); + init(); + } + + public RsBlurLinearLayout(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + public RsBlurLinearLayout(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + init(); + } + + private void init() { + mCanvas = new Canvas(); + mLocationInWindow = new int[2]; + mProcessor = HokoBlur.with(getContext()).scheme(HokoBlur.SCHEME_RENDER_SCRIPT).sampleFactor(DEFAULT_BITMAP_SAMPLE_FACTOR).processor(); + setBlurRadius(DEFAULT_BLUR_RADIUS); + + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + getViewTreeObserver().addOnPreDrawListener(mOnPreDrawListener); + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + getViewTreeObserver().removeOnPreDrawListener(mOnPreDrawListener); + } + + @Override + protected void dispatchDraw(Canvas canvas) { + if (mCanvas == canvas) { + mBitmap = mProcessor.blur(mBitmap); + } else { + if (mBitmap != null) { + canvas.drawBitmap(mBitmap, new Matrix(), null); + } + super.dispatchDraw(canvas); + } + } + + public void setBlurRadius(int radius) { + mProcessor.radius(radius); + invalidate(); + } + + public void setSampleFactor(float factor) { + mProcessor.sampleFactor(factor); + invalidate(); + } + + private void prepare() { + int width = getWidth(); + int height = getHeight(); + + width = Math.max(width, 1); + height = Math.max(height, 1); + + if (mBitmap == null || mBitmap.getWidth() != width || mBitmap.getHeight() != height) { + mBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); + } + + getLocationInWindow(mLocationInWindow); + mCanvas.restoreToCount(1); + mCanvas.setBitmap(mBitmap); + mCanvas.setMatrix(new Matrix()); + mCanvas.translate(-mLocationInWindow[0], -mLocationInWindow[1]); + mCanvas.save(); + getRootView().draw(mCanvas); + } + +} \ No newline at end of file diff --git a/hoko-blur/src/main/jni/BlurUtil.cpp b/hoko-blur/src/main/jni/BlurUtil.cpp new file mode 100644 index 0000000000..b62bd4e593 --- /dev/null +++ b/hoko-blur/src/main/jni/BlurUtil.cpp @@ -0,0 +1,78 @@ +// +// Created by yuxfzju on 2017/2/14. +// + +#include "include/BlurUtil.h" + +#ifdef __cplusplus +extern "C" { +#endif + +jint clamp(jint i, jint minValue, jint maxValue) { + if (i < minValue) { + return minValue; + } else if (i > maxValue) { + return maxValue; + } else { + return i; + } +} + + +JNIEXPORT void JNICALL +Java_com_hoko_blur_util_BitmapUtil_replaceBitmap(JNIEnv *env, jclass type, jobject jbitmap, + jintArray j_inArray, jint j_x, jint j_y, + jint j_deltaW, jint j_deltaH) { + + if (jbitmap == nullptr) { + return; + } + + AndroidBitmapInfo bmpInfo = {0}; + if (AndroidBitmap_getInfo(env, jbitmap, &bmpInfo) < 0) { + return; + } + + int *pixels = nullptr; + if (AndroidBitmap_lockPixels(env, jbitmap, (void **) &pixels) < 0) { + return; + } + + + jint *c_inArray; + c_inArray = env->GetIntArrayElements(j_inArray, nullptr); + + int w = bmpInfo.width; + int h = bmpInfo.height; + + for (int i = j_x; i < j_x + j_deltaW; i++) { + for (int j = j_y; j < j_y + j_deltaH; j++) { + jint argb = c_inArray[i - j_x + (j - j_y) * j_deltaW]; + jint a = ((argb >> 24) & 0xff) << 24; + jint r = (argb >> 16) & 0xff; + jint g = ((argb >> 8) & 0xff) << 8; + jint b = (argb & 0xff) << 16; + pixels[i + j * w] = a + r + g + b; + } + } +// for(int i = j_y * w; i < w * (j_y + j_deltaH); i ++) { +// jint argb = c_inArray[i]; +// jint a = ((argb >> 24) & 0xff) << 24; +// jint r = (argb >> 16) & 0xff; +// jint g = ((argb >> 8) & 0xff) << 8; +// jint b = (argb & 0xff) << 16; +// +// pixels[i] = a + r + g + b; +// +// } +// __android_log_print(ANDROID_LOG_ERROR, "unlockPixels", "unlockPixels"); + + AndroidBitmap_unlockPixels(env, jbitmap); + + env->ReleaseIntArrayElements(j_inArray, c_inArray, 0); + +} + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/hoko-blur/src/main/jni/BoxBlurFilter.cpp b/hoko-blur/src/main/jni/BoxBlurFilter.cpp new file mode 100644 index 0000000000..17dd48df49 --- /dev/null +++ b/hoko-blur/src/main/jni/BoxBlurFilter.cpp @@ -0,0 +1,158 @@ +// +// Created by yuxfzju on 16/7/28. +// + +#include "include/BoxBlurFilter.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void boxBlurHorizontal(jint *in, jint *out, jint width, jint height, jint radius, jint startX, + jint startY, jint deltaX, jint deltaY) { + jint widthMinus1 = width - 1; + jint tableSize = 2 * radius + 1; + jint divide[256 * tableSize]; + + for (jint i = 0; i < 256 * tableSize; i++) + divide[i] = i / tableSize; + + for (jint y = startY; y < startY + deltaY; y++) { + jint ta = 0, tr = 0, tg = 0, tb = 0; + + for (jint i = -radius; i <= radius; i++) { + jint rgb = in[y * width + + clamp(i, startX, startX + deltaX - 1)]; + ta += (rgb >> 24) & 0xff; + tr += (rgb >> 16) & 0xff; + tg += (rgb >> 8) & 0xff; + tb += rgb & 0xff; + } + + jint baseIndex = y * width; + + for (jint x = startX; x < startX + deltaX; x++) { + + jint i1 = x + radius + 1; + if (i1 > startX + deltaX - 1) + i1 = startX + deltaX - 1; + jint i2 = x - radius; + if (i2 < startX) + i2 = startX; + jint rgb1 = in[baseIndex + i1]; + jint rgb2 = in[baseIndex + i2]; + + ta += ((rgb1 >> 24) & 0xff) - ((rgb2 >> 24) & 0xff); + tr += ((rgb1 & 0xff0000) - (rgb2 & 0xff0000)) >> 16; + tg += ((rgb1 & 0xff00) - (rgb2 & 0xff00)) >> 8; + tb += (rgb1 & 0xff) - (rgb2 & 0xff); + + out[baseIndex + x] = (divide[ta] << 24) | (divide[tr] << 16) | (divide[tg] << 8) | + divide[tb]; + } + } +} + + +void boxBlurVertical(jint *in, jint *out, jint width, jint height, jint radius, jint startX, jint startY, + jint deltaX, jint deltaY) { + jint heightMinus1 = height - 1; + jint tableSize = 2 * radius + 1; + jint divide[256 * tableSize]; + + for (jint i = 0; i < 256 * tableSize; i++) + divide[i] = i / tableSize; + + for (jint x = startX; x < startX + deltaX; x++) { + jint ta = 0, tr = 0, tg = 0, tb = 0; + + for (jint i = -radius; i <= radius; i++) { + jint rgb = in[x + clamp(i, startY, startY + deltaY - 1) * width]; + ta += (rgb >> 24) & 0xff; + tr += (rgb >> 16) & 0xff; + tg += (rgb >> 8) & 0xff; + tb += rgb & 0xff; + } + + for (jint y = startY; y < startY + deltaY; y++) { + out[y * width + x] = (divide[ta] << 24) | (divide[tr] << 16) | (divide[tg] << 8) | + divide[tb]; + + jint i1 = y + radius + 1; + if (i1 > startY + deltaY - 1) + i1 = startY + deltaY - 1; + jint i2 = y - radius; + if (i2 < startY) + i2 = startY; + jint rgb1 = in[x + i1 * width]; + jint rgb2 = in[x + i2 * width]; + + ta += ((rgb1 >> 24) & 0xff) - ((rgb2 >> 24) & 0xff); + tr += ((rgb1 & 0xff0000) - (rgb2 & 0xff0000)) >> 16; + tg += ((rgb1 & 0xff00) - (rgb2 & 0xff00)) >> 8; + tb += (rgb1 & 0xff) - (rgb2 & 0xff); + } + } +} + + +JNIEXPORT void JNICALL +Java_com_hoko_blur_filter_NativeBlurFilter_nativeBoxBlur(JNIEnv *env, jclass type, + jobject jbitmap, jint j_radius, + jint j_cores, jint j_index, + jint j_direction) { + + if (jbitmap == nullptr) { + return; + } + + AndroidBitmapInfo bmpInfo = {0}; + if (AndroidBitmap_getInfo(env, jbitmap, &bmpInfo) < 0) { + return; + } + + int *pixels = nullptr; + if (AndroidBitmap_lockPixels(env, jbitmap, (void **) &pixels) < 0) { + return; + } + + int w = bmpInfo.width; + int h = bmpInfo.height; + + jint *copy = nullptr; + copy = (jint *) malloc(sizeof(jint) * w * h); + + for (int i = 0; i < w * h; i++) { + copy[i] = pixels[i]; + } + + if (j_direction == HORIZONTAL) { + int deltaY = h / j_cores; + int startY = j_index * deltaY; + + if (j_index == j_cores - 1) { + deltaY = h - (j_cores - 1) * deltaY; + } + + boxBlurHorizontal(copy, pixels, w, h, j_radius, 0, startY, w, deltaY); + + } else if (j_direction == VERTICAL) { + int deltaX = w / j_cores; + int startX = j_index * deltaX; + + if (j_index == j_cores - 1) { + deltaX = w - (j_cores - 1) * (w / j_cores); + } + + boxBlurVertical(copy, pixels, w, h, j_radius, startX, 0, deltaX, h); + } + + AndroidBitmap_unlockPixels(env, jbitmap); + + free(copy); + +} + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/hoko-blur/src/main/jni/CMakeLists.txt b/hoko-blur/src/main/jni/CMakeLists.txt new file mode 100644 index 0000000000..3ca5d11f36 --- /dev/null +++ b/hoko-blur/src/main/jni/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.6) +project(Hoko_blur) + +set(CMAKE_CXX_STANDARD 11) + +include_directories( + ${CMAKE_SOURCE_DIR}/include +) + +add_compile_options(-fPIC) + +aux_source_directory(. SOURCE_FILES) + +set(BLUR_LIB_NAME hoko_blur) + +add_library(${BLUR_LIB_NAME} SHARED ${SOURCE_FILES}) + +find_library(log-lib log) +target_link_libraries(${BLUR_LIB_NAME} ${log-lib}) + +find_library(graphics-lib jnigraphics) +target_link_libraries(${BLUR_LIB_NAME} ${graphics-lib}) + diff --git a/hoko-blur/src/main/jni/GaussianBlurFilter.cpp b/hoko-blur/src/main/jni/GaussianBlurFilter.cpp new file mode 100644 index 0000000000..f9a3f58688 --- /dev/null +++ b/hoko-blur/src/main/jni/GaussianBlurFilter.cpp @@ -0,0 +1,178 @@ +// +// Created by yuxfzju on 16/9/10. +// + +#include "include/GaussianBlurFilter.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void gaussianBlurHorizontal(float *kernel, jint *inPixels, jint *outPixels, jint width, jint height, + jint radius, + jint startX, jint startY, jint deltaX, jint deltaY) { + jint cols = 2 * radius + 1; + jint cols2 = cols / 2; + jint x, y, col; + + jint endY = startY + deltaY; + jint endX = startX + deltaX; + + for (y = startY; y < endY; y++) { + jint ioffset = y * width; + for (x = startX; x < endX; x++) { + float r = 0, g = 0, b = 0; + int moffset = cols2; + for (col = -cols2; col <= cols2; col++) { + float f = kernel[moffset + col]; + + if (f != 0) { + jint ix = x + col; + if (ix < startX) { + ix = startX; + } else if (ix >= endX) { + ix = endX - 1; + } + jint rgb = inPixels[ioffset + ix]; + r += f * ((rgb >> 16) & 0xff); + g += f * ((rgb >> 8) & 0xff); + b += f * (rgb & 0xff); + } + } + + jint outIndex = ioffset + x; + jint ia = (inPixels[ioffset + x] >> 24) & 0xff; + jint ir = clamp((jint) (r + 0.5), 0, 255); + jint ig = clamp((jint) (g + 0.5), 0, 255); + jint ib = clamp((jint) (b + 0.5), 0, 255); + outPixels[outIndex] = (ia << 24) | (ir << 16) | (ig << 8) | ib; + } + } +} + +void gaussianBlurVertical(float *kernel, jint *inPixels, jint *outPixels, jint width, jint height, + jint radius, + jint startX, jint startY, jint deltaX, jint deltaY) { + jint cols = 2 * radius + 1; + jint cols2 = cols / 2; + jint x, y, col; + + jint endY = startY + deltaY; + jint endX = startX + deltaX; + + for (x = startX; x < endX; x++) { + jint ioffset = x; + for (y = startY; y < endY; y++) { + float r = 0, g = 0, b = 0; + int moffset = cols2; + for (col = -cols2; col <= cols2; col++) { + float f = kernel[moffset + col]; + + if (f != 0) { + jint iy = y + col; + if (iy < startY) { + iy = startY; + } else if (iy >= endY) { + iy = endY - 1; + } + jint rgb = inPixels[ioffset + iy * width]; + r += f * ((rgb >> 16) & 0xff); + g += f * ((rgb >> 8) & 0xff); + b += f * (rgb & 0xff); + } + } + jint outIndex = ioffset + y * width; + jint ia = (inPixels[ioffset + x] >> 24) & 0xff; + jint ir = clamp((jint) (r + 0.5), 0, 255); + jint ig = clamp((jint) (g + 0.5), 0, 255); + jint ib = clamp((jint) (b + 0.5), 0, 255); + outPixels[outIndex] = (ia << 24) | (ir << 16) | (ig << 8) | ib; + } + } +} + +float *makeKernel(jint r) { + jint i, row; + jint rows = r * 2 + 1; + float *matrix = (float *) malloc(sizeof(float) * rows); + float sigma = (r + 1) / 2.0f; + float sigma22 = 2 * sigma * sigma; + float total = 0; + jint index = 0; + for (row = -r; row <= r; row++) { + matrix[index] = exp(-1 * (row * row) / sigma22) / sigma; + total += matrix[index]; + index++; + } + for (i = 0; i < rows; i++) { + matrix[i] /= total; + } + + return matrix; +} + + +void JNICALL Java_com_hoko_blur_filter_NativeBlurFilter_nativeGaussianBlur(JNIEnv *env, jclass type, + jobject jbitmap, + jint j_radius, + jint j_cores, + jint j_index, + jint j_direction) { + + if (jbitmap == nullptr) { + return; + } + + AndroidBitmapInfo bmpInfo = {0}; + if (AndroidBitmap_getInfo(env, jbitmap, &bmpInfo) < 0) { + return; + } + + int *pixels = nullptr; + if (AndroidBitmap_lockPixels(env, jbitmap, (void **) &pixels) < 0) { + return; + } + + int w = bmpInfo.width; + int h = bmpInfo.height; + + float *kernel = nullptr; + kernel = makeKernel(j_radius); + + jint *copy = nullptr; + copy = (jint *) malloc(sizeof(jint) * w * h); + + for (int i = 0; i < w * h; i++) { + copy[i] = pixels[i]; + } + + if (j_direction == HORIZONTAL) { + int deltaY = h / j_cores; + int startY = j_index * deltaY; + + if (j_index == j_cores - 1) { + deltaY = h - (j_cores - 1) * deltaY; + } + + gaussianBlurHorizontal(kernel, copy, pixels, w, h, j_radius, 0, startY, w, deltaY); + + } else if (j_direction == VERTICAL) { + int deltaX = w / j_cores; + int startX = j_index * deltaX; + + if (j_index == j_cores - 1) { + deltaX = w - (j_cores - 1) * (w / j_cores); + } + + gaussianBlurVertical(kernel, copy, pixels, w, h, j_radius, startX, 0, deltaX, h); + } + + AndroidBitmap_unlockPixels(env, jbitmap); + + free(copy); + free(kernel); +} + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/hoko-blur/src/main/jni/StackBlurFilter.cpp b/hoko-blur/src/main/jni/StackBlurFilter.cpp new file mode 100644 index 0000000000..16c7c24d21 --- /dev/null +++ b/hoko-blur/src/main/jni/StackBlurFilter.cpp @@ -0,0 +1,288 @@ +// +// Created by yuxfzju on 16/7/28. +// + +#include "include/StackBlurFilter.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define max(a, b) ((a)>(b)?(a):(b)) +#define min(a, b) ((a)<(b)?(a):(b)) + +void doHorizontalBlur(jint *pix, jint w, jint h, jint radius, jint startX, jint startY, jint deltaX, + jint deltaY) { + + jint wm = w - 1; + jint div = radius + radius + 1; + + jint rsum, gsum, bsum, x, y, i, p, yi; + jint *vmin; + + vmin = (jint *) malloc(sizeof(jint) * max(w, h)); + + jint divsum = (div + 1) >> 1; + divsum *= divsum; + + short *dv; + dv = (short *) malloc(sizeof(short) * 256 * divsum); + + for (i = 0; i < 256 * divsum; i++) { + dv[i] = (short) (i / divsum); + } + + jint (*stack)[3]; + stack = (jint(*)[3]) malloc(sizeof(jint) * div * 3); + + jint stackpointer; + jint stackstart; + jint *sir; + jint rbs; + jint r1 = radius + 1; + jint routsum, goutsum, boutsum; + jint rinsum, ginsum, binsum; + jint baseIndex; + jint endX = startX + deltaX; + jint endY = startY + deltaY; + + for (y = startY; y < endY; y++) { + rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0; + baseIndex = y * w; + + for (i = -radius; i <= radius; i++) { + p = pix[baseIndex + min(wm, max(startX, i + startX))]; + sir = stack[i + radius]; + sir[0] = (p & 0xff0000) >> 16; + sir[1] = (p & 0x00ff00) >> 8; + sir[2] = (p & 0x0000ff); + rbs = r1 - abs(i); + rsum += sir[0] * rbs; + gsum += sir[1] * rbs; + bsum += sir[2] * rbs; + if (i > 0) { + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + } else { + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + } + } + stackpointer = radius; + + yi = baseIndex + startX; + for (x = startX; x < endX; x++) { + + pix[yi] = (0xff000000 & pix[yi]) | (dv[rsum] << 16) | (dv[gsum] << 8) | dv[bsum]; + + rsum -= routsum; + gsum -= goutsum; + bsum -= boutsum; + + stackstart = stackpointer - radius + div; + sir = stack[stackstart % div]; + + routsum -= sir[0]; + goutsum -= sir[1]; + boutsum -= sir[2]; + + vmin[x] = min(x + radius + 1, wm); + p = pix[baseIndex + vmin[x]]; + + sir[0] = (p & 0xff0000) >> 16; + sir[1] = (p & 0x00ff00) >> 8; + sir[2] = (p & 0x0000ff); + + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + + rsum += rinsum; + gsum += ginsum; + bsum += binsum; + + stackpointer = (stackpointer + 1) % div; + sir = stack[(stackpointer) % div]; + + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + + rinsum -= sir[0]; + ginsum -= sir[1]; + binsum -= sir[2]; + + yi++; + } + } + + + free(dv); + free(stack); +} + + +void doVerticalBlur(jint *pix, jint w, jint h, jint radius, jint startX, jint startY, jint deltaX, + jint deltaY) { + + jint hm = h - 1; + jint hmw = hm * w; + jint div = radius + radius + 1; + + jint rsum, gsum, bsum, x, y, i, p, yi; + jint *vmin; + + vmin = (jint *) malloc(sizeof(jint) * max(w, h)); + + jint divsum = (div + 1) >> 1; + divsum *= divsum; + + short *dv; + dv = (short *) malloc(sizeof(short) * 256 * divsum); + + for (i = 0; i < 256 * divsum; i++) { + dv[i] = (short) (i / divsum); + } + + jint (*stack)[3]; + stack = (jint(*)[3]) malloc(sizeof(jint) * div * 3); + + jint stackpointer; + jint stackstart; + jint *sir; + jint rbs; + jint r1 = radius + 1; + jint routsum, goutsum, boutsum; + jint rinsum, ginsum, binsum; + jint endX = startX + deltaX; + jint endY = startY + deltaY; + + jint baseIndex = startY * w; + + for (x = startX; x < endX; x++) { + rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0; + for (i = -radius; i <= radius; i++) { + p = pix[min(hmw, max(baseIndex + i * w, baseIndex)) + x]; + sir = stack[i + radius]; + sir[0] = (p & 0xff0000) >> 16; + sir[1] = (p & 0x00ff00) >> 8; + sir[2] = (p & 0x0000ff); + rbs = r1 - abs(i); + rsum += sir[0] * rbs; + gsum += sir[1] * rbs; + bsum += sir[2] * rbs; + if (i > 0) { + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + } else { + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + } + } + stackpointer = radius; + + yi = baseIndex + x; + for (y = startY; y < endY; y++) { + + pix[yi] = (0xff000000 & pix[yi]) | (dv[rsum] << 16) | (dv[gsum] << 8) | dv[bsum]; + + rsum -= routsum; + gsum -= goutsum; + bsum -= boutsum; + + stackstart = stackpointer - radius + div; + sir = stack[stackstart % div]; + + routsum -= sir[0]; + goutsum -= sir[1]; + boutsum -= sir[2]; + + vmin[y] = min(y + radius + 1, hm); + p = pix[vmin[y] * w + x]; + + sir[0] = (p & 0xff0000) >> 16; + sir[1] = (p & 0x00ff00) >> 8; + sir[2] = (p & 0x0000ff); + + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + + rsum += rinsum; + gsum += ginsum; + bsum += binsum; + + stackpointer = (stackpointer + 1) % div; + sir = stack[(stackpointer) % div]; + + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + + rinsum -= sir[0]; + ginsum -= sir[1]; + binsum -= sir[2]; + + yi += w; + } + } + + free(dv); + free(stack); +} + +JNIEXPORT void JNICALL +Java_com_hoko_blur_filter_NativeBlurFilter_nativeStackBlur(JNIEnv *env, jclass type, + jobject jbitmap, jint j_radius, + jint j_cores, jint j_index, + jint j_direction) { + + if (jbitmap == nullptr) { + return; + } + + AndroidBitmapInfo bmpInfo = {0}; + if (AndroidBitmap_getInfo(env, jbitmap, &bmpInfo) < 0) { + return; + } + + int *pixels = nullptr; + if (AndroidBitmap_lockPixels(env, jbitmap, (void **) &pixels) < 0) { + return; + } + + int w = bmpInfo.width; + int h = bmpInfo.height; + + if (j_direction == HORIZONTAL) { + int deltaY = h / j_cores; + int startY = j_index * deltaY; + + if (j_index == j_cores - 1) { + deltaY = h - (j_cores - 1) * deltaY; + } + + doHorizontalBlur(pixels, w, h, j_radius, 0, startY, w, deltaY); + + } else if (j_direction == VERTICAL) { + int deltaX = w / j_cores; + int startX = j_index * deltaX; + + if (j_index == j_cores - 1) { + deltaX = w - (j_cores - 1) * (w / j_cores); + } + + doVerticalBlur(pixels, w, h, j_radius, startX, 0, deltaX, h); + } + + AndroidBitmap_unlockPixels(env, jbitmap); + +} + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/hoko-blur/src/main/jni/include/BlurUtil.h b/hoko-blur/src/main/jni/include/BlurUtil.h new file mode 100644 index 0000000000..7a832fd379 --- /dev/null +++ b/hoko-blur/src/main/jni/include/BlurUtil.h @@ -0,0 +1,32 @@ +// +// Created by yuxfzju on 2017/2/14. +// + +#ifndef HOKO_BLUR_BITMAPREPLACE_H +#define HOKO_BLUR_BITMAPREPLACE_H + +#include +#include "android/bitmap.h" +#include "android/log.h" + +#ifdef __cplusplus +extern "C" { +#endif + +enum Direction { + HORIZONTAL, + VERTICAL, + BOTH +}; + +jint clamp(jint i, jint minValue, jint maxValue); + +JNIEXPORT void JNICALL +Java_com_hoko_blur_util_BitmapUtil_replaceBitmap(JNIEnv *env, jclass type, jobject bitmap, + jintArray j_inArray, jint, jint, jint, jint); + +#ifdef __cplusplus +} +#endif + +#endif //HOKO_BLUR_BITMAPREPLACE_H diff --git a/hoko-blur/src/main/jni/include/BoxBlurFilter.h b/hoko-blur/src/main/jni/include/BoxBlurFilter.h new file mode 100644 index 0000000000..87d2d93a7a --- /dev/null +++ b/hoko-blur/src/main/jni/include/BoxBlurFilter.h @@ -0,0 +1,22 @@ +#ifndef HOKO_BLUR_BOXBLURFILTER_H +#define HOKO_BLUR_BOXBLURFILTER_H + +#include +#include +#include +#include +#include +#include +#include "BlurUtil.h" + +#ifdef __cplusplus +extern "C" { +#endif + +JNIEXPORT void JNICALL Java_com_hoko_blur_filter_NativeBlurFilter_nativeBoxBlur + (JNIEnv *, jclass, jobject, jint, jint, jint, jint); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/hoko-blur/src/main/jni/include/GaussianBlurFilter.h b/hoko-blur/src/main/jni/include/GaussianBlurFilter.h new file mode 100644 index 0000000000..fcdf19169c --- /dev/null +++ b/hoko-blur/src/main/jni/include/GaussianBlurFilter.h @@ -0,0 +1,28 @@ +// +// Created by yuxfzju on 16/9/10. +// + +#ifndef HOKO_BLUR_GAUSSIANBLURFILTER_H +#define HOKO_BLUR_GAUSSIANBLURFILTER_H + + +#include +#include +#include +#include "math.h" +#include "BlurUtil.h" +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +JNIEXPORT void JNICALL Java_com_hoko_blur_filter_NativeBlurFilter_nativeGaussianBlur + (JNIEnv *, jclass, jobject, jint, jint, jint, jint); + +#ifdef __cplusplus +} +#endif +#endif //HOKO_BLUR_GAUSSIANBLURFILTER_H diff --git a/hoko-blur/src/main/jni/include/StackBlurFilter.h b/hoko-blur/src/main/jni/include/StackBlurFilter.h new file mode 100644 index 0000000000..1616c6d027 --- /dev/null +++ b/hoko-blur/src/main/jni/include/StackBlurFilter.h @@ -0,0 +1,22 @@ +#ifndef HOKO_BLUR_STACKBLURFILTER_H +#define HOKO_BLUR_STACKBLURFILTER_H + +#include +#include +#include +#include +#include "BlurUtil.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +JNIEXPORT void JNICALL Java_com_hoko_blur_filter_NativeBlurFilter_nativeStackBlur + (JNIEnv *, jclass, jobject, jint, jint, jint, jint); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/hoko-blur/src/main/res/values/strings.xml b/hoko-blur/src/main/res/values/strings.xml new file mode 100644 index 0000000000..bb14642b6d --- /dev/null +++ b/hoko-blur/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Hoko Blur Library + diff --git a/hoko-blur/src/main/rs/BoxBlur.rs b/hoko-blur/src/main/rs/BoxBlur.rs new file mode 100644 index 0000000000..9f4510bb44 --- /dev/null +++ b/hoko-blur/src/main/rs/BoxBlur.rs @@ -0,0 +1,64 @@ +#pragma version(1) + +#pragma rs java_package_name(com.hoko.blur.renderscript) + +#pragma rs_fp_relaxed + +rs_allocation input; +rs_allocation output; +int width; +int height; +int radius; + + +void __attribute__((kernel)) boxblur_h(uchar4 in, uint32_t x, uint32_t y) { + + float4 sum = 0; + uchar4 result; + int count = 0; + int kernel = (2 * radius + 1); + + uchar4 center = rsGetElementAt_uchar4(input, x, y); + + for (int j = -radius; j <= radius; j++) { + if (x >= 0 && x < width && y + j >= 0 && y + j < height) { + uchar4 temp = rsGetElementAt_uchar4(input, x, y + j); + sum += rsUnpackColor8888(temp); + count++; + } + } + + + sum = sum / count; + result = rsPackColorTo8888(sum); + result.a = center.a; + rsSetElementAt_uchar4(output, result, x, y); + +} + + +void __attribute__((kernel)) boxblur_v(uchar4 in, uint32_t x, uint32_t y) { + + float4 sum = 0; + uchar4 result; + int count = 0; + int kernel = (2 * radius + 1); + + uchar4 center = rsGetElementAt_uchar4(input, x, y); + + for (int i = -radius; i <= radius; i++) { + if (x + i >= 0 && x + i < width && y >= 0 && y < height) { + uchar4 temp = rsGetElementAt_uchar4(input, x + i, y); + sum += rsUnpackColor8888(temp); + count++; + + } + } + + + sum = sum / count; + result = rsPackColorTo8888(sum); + result.a = center.a; + rsSetElementAt_uchar4(output, result, x, y); + +} diff --git a/hoko-blur/src/main/rs/StackBlur.rs b/hoko-blur/src/main/rs/StackBlur.rs new file mode 100644 index 0000000000..133d5b00a7 --- /dev/null +++ b/hoko-blur/src/main/rs/StackBlur.rs @@ -0,0 +1,69 @@ +#pragma version(1) + +#pragma rs java_package_name(com.hoko.blur.renderscript) + +#pragma rs_fp_relaxed + +rs_allocation input; +rs_allocation output; + +int width; +int height; + +int radius; + + +void __attribute__((kernel)) stackblur_h(uchar4 in, uint32_t x, uint32_t y) { + + float4 sum = 0; + uchar4 result; + int count = 0; + int kernel = (2 * radius + 1); + int weightSum = 0; + + uchar4 center = rsGetElementAt_uchar4(input, x, y); + + for (int i = -radius; i <= radius; i++) { + if (x + i >= 0 && x + i < width) { + uchar4 temp = rsGetElementAt_uchar4(input, x + i, y); + int weight = radius + 1 - abs(i); + sum += rsUnpackColor8888(temp) * weight; + weightSum += weight; + } + + } + + sum = sum / weightSum; + result = rsPackColorTo8888(sum); + result.a = center.a; + rsSetElementAt_uchar4(output, result, x, y); + +} + +void __attribute__((kernel)) stackblur_v(uchar4 in, uint32_t x, uint32_t y) { + + float4 sum = 0; + uchar4 result; + int count = 0; + int kernel = (2 * radius + 1); + int weightSum = 0; + + uchar4 center = rsGetElementAt_uchar4(input, x, y); + + for (int j = -radius; j <= radius; j++) { + if (y + j >= 0 && y + j < height) { + uchar4 temp = rsGetElementAt_uchar4(input, x, y + j); + int weight = radius + 1 - abs(j); + sum += rsUnpackColor8888(temp) * weight; + weightSum += weight; + } + } + + sum = sum / weightSum; + result = rsPackColorTo8888(sum); + result.a = center.a; + rsSetElementAt_uchar4(output, result, x, y); + +} + + diff --git a/hoko-blur/src/test/java/com/hoko/blur/ExampleUnitTest.java b/hoko-blur/src/test/java/com/hoko/blur/ExampleUnitTest.java new file mode 100644 index 0000000000..a955fa3f00 --- /dev/null +++ b/hoko-blur/src/test/java/com/hoko/blur/ExampleUnitTest.java @@ -0,0 +1,15 @@ +package com.hoko.blur; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +/** + * To work on unit tests, switch the Test Artifact in the Build Variants view. + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() throws Exception { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index e7b4def49c..e1064f95f6 100755 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,2 @@ include ':app' +include ':hoko-blur' \ No newline at end of file -- GitLab From 37e61f24abcb73c5cccf757ffb63dac9d9837146 Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Tue, 26 Nov 2019 16:51:49 +0530 Subject: [PATCH 11/18] Add kotlin support in BlissLauncher --- app/build.gradle | 5 ++++- build.gradle | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 3cd88ddb35..0a6d4663af 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' // Manifest version information! def versionMajor = 1 @@ -108,8 +109,10 @@ dependencies { // Rx Relay implementation "com.jakewharton.rxrelay2:rxrelay:${rootProject.ext.rxRelayVersion}" + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + // Blur Library - implementation 'com.hoko:hoko-blur:1.3.4' + implementation project(':hoko-blur') // Room implementation "android.arch.persistence.room:runtime:1.1.1" diff --git a/build.gradle b/build.gradle index 95551a51c7..f767922a63 100755 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.kotlin_version = '1.3.60' repositories { google() jcenter() @@ -10,6 +11,7 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:3.5.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.6' } } -- GitLab From 10833792ddb1ac4a289c7428a8838cc0682c9a37 Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Tue, 26 Nov 2019 16:52:27 +0530 Subject: [PATCH 12/18] Improve blur behaviour and make navigation bar transparent 1. Use cached blur wallpaper instead of live blurring for smooth visual effects. 2. Make Navigation Bar transaprent to match with bottom dock. 3. Use transparent grey color as background for folder icons. 4. Use placeholder in case wallpaper is not available. --- .../e/blisslauncher/BlissLauncher.java | 6 +- .../e/blisslauncher/core/KotlinUtils.kt | 25 ++ .../e/blisslauncher/core/Utilities.java | 19 ++ .../core/blur/BlurWallpaperFilter.kt | 33 +++ .../core/blur/BlurWallpaperProvider.java | 228 ---------------- .../core/blur/BlurWallpaperProvider.kt | 244 ++++++++++++++++++ .../core/blur/ShaderBlurDrawable.kt | 126 +++++++++ .../core/blur/WallpaperFilter.kt | 57 ++++ .../broadcast/WallpaperChangeReceiver.java | 2 +- .../core/customviews/BlissFrameLayout.java | 14 +- .../core/customviews/BlurBackgroundView.kt | 80 ++++++ .../core/customviews/DockGridLayout.java | 100 ++++++- .../core/customviews/HorizontalPager.java | 25 +- .../core/customviews/Insettable.java | 13 + .../customviews/InsettableRelativeLayout.java | 87 +++++++ .../customviews/InsettableScrollLayout.java | 32 +++ .../core/customviews/SquareFrameLayout.java | 6 +- .../core/customviews/SquareImageView.java | 14 +- .../core/executors/MainThreadExecutor.java | 52 ++++ .../core/utils/GraphicsUtil.java | 2 +- .../core/utils/SingletonHolder.kt | 55 ++++ .../features/launcher/LauncherActivity.java | 196 +++++--------- app/src/main/res/layout/activity_main.xml | 17 +- app/src/main/res/layout/widgets_page.xml | 101 ++++---- app/src/main/res/values/attrs.xml | 4 + app/src/main/res/values/styles.xml | 2 + 26 files changed, 1095 insertions(+), 445 deletions(-) create mode 100644 app/src/main/java/foundation/e/blisslauncher/core/KotlinUtils.kt create mode 100644 app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperFilter.kt delete mode 100644 app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java create mode 100644 app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.kt create mode 100644 app/src/main/java/foundation/e/blisslauncher/core/blur/ShaderBlurDrawable.kt create mode 100644 app/src/main/java/foundation/e/blisslauncher/core/blur/WallpaperFilter.kt create mode 100644 app/src/main/java/foundation/e/blisslauncher/core/customviews/BlurBackgroundView.kt create mode 100644 app/src/main/java/foundation/e/blisslauncher/core/customviews/Insettable.java create mode 100644 app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableRelativeLayout.java create mode 100644 app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableScrollLayout.java create mode 100644 app/src/main/java/foundation/e/blisslauncher/core/executors/MainThreadExecutor.java create mode 100644 app/src/main/java/foundation/e/blisslauncher/core/utils/SingletonHolder.kt diff --git a/app/src/main/java/foundation/e/blisslauncher/BlissLauncher.java b/app/src/main/java/foundation/e/blisslauncher/BlissLauncher.java index 70eb4e0a19..622e792f83 100755 --- a/app/src/main/java/foundation/e/blisslauncher/BlissLauncher.java +++ b/app/src/main/java/foundation/e/blisslauncher/BlissLauncher.java @@ -6,6 +6,7 @@ import android.content.Context; import foundation.e.blisslauncher.core.DeviceProfile; import foundation.e.blisslauncher.core.IconsHandler; +import foundation.e.blisslauncher.core.blur.BlurWallpaperProvider; import foundation.e.blisslauncher.core.customviews.WidgetHost; import foundation.e.blisslauncher.features.launcher.AppProvider; import io.github.inflationx.calligraphy3.CalligraphyConfig; @@ -21,8 +22,6 @@ public class BlissLauncher extends Application { private static WidgetHost sAppWidgetHost; private static AppWidgetManager sAppWidgetManager; - private static final String TAG = "BlissLauncher"; - @Override public void onCreate() { super.onCreate(); @@ -39,6 +38,9 @@ public class BlissLauncher extends Application { sAppWidgetHost = new WidgetHost(getApplicationContext(), R.id.APPWIDGET_HOST_ID); sAppWidgetHost.startListening(); + + connectAppProvider(); + BlurWallpaperProvider.Companion.getInstance(this); } public static BlissLauncher getApplication(Context context) { diff --git a/app/src/main/java/foundation/e/blisslauncher/core/KotlinUtils.kt b/app/src/main/java/foundation/e/blisslauncher/core/KotlinUtils.kt new file mode 100644 index 0000000000..e45d2b6882 --- /dev/null +++ b/app/src/main/java/foundation/e/blisslauncher/core/KotlinUtils.kt @@ -0,0 +1,25 @@ +package foundation.e.blisslauncher.core + +import android.os.Handler +import android.os.Looper + +val mainHandler by lazy { Handler(Looper.getMainLooper()) } + + +fun runOnMainThread(r: () -> Unit) { + runOnThread(mainHandler, r) +} + +fun runOnThread(handler: Handler, r: () -> Unit) { + if (handler.looper.thread.id == Looper.myLooper()?.thread?.id) { + r() + } else { + handler.post(r) + } +} + +inline fun Iterable.safeForEach(action: (T) -> Unit) { + val tmp = ArrayList() + tmp.addAll(this) + for (element in tmp) action(element) +} \ No newline at end of file diff --git a/app/src/main/java/foundation/e/blisslauncher/core/Utilities.java b/app/src/main/java/foundation/e/blisslauncher/core/Utilities.java index ca598b69bd..52c69eba57 100755 --- a/app/src/main/java/foundation/e/blisslauncher/core/Utilities.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/Utilities.java @@ -19,6 +19,10 @@ import java.io.IOException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Calendar; +import java.util.concurrent.Executor; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -44,6 +48,19 @@ public class Utilities { public static final boolean ATLEAST_MARSHMALLOW = Build.VERSION.SDK_INT >= 23; + + // These values are same as that in {@link AsyncTask}. + private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors(); + private static final int CORE_POOL_SIZE = CPU_COUNT + 1; + private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1; + private static final int KEEP_ALIVE = 1; + /** + * An {@link Executor} to be used with async task with no limit on the queue size. + */ + public static final Executor THREAD_POOL_EXECUTOR = new ThreadPoolExecutor( + CORE_POOL_SIZE, MAXIMUM_POOL_SIZE, KEEP_ALIVE, + TimeUnit.SECONDS, new LinkedBlockingQueue()); + /** * Compresses the bitmap to a byte array for serialization. */ @@ -212,4 +229,6 @@ public class Utilities { return defaultValue; } + + } diff --git a/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperFilter.kt b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperFilter.kt new file mode 100644 index 0000000000..fe623753cc --- /dev/null +++ b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperFilter.kt @@ -0,0 +1,33 @@ +package foundation.e.blisslauncher.core.blur + +import android.content.Context +import android.graphics.Bitmap +import com.hoko.blur.HokoBlur +import com.hoko.blur.task.AsyncBlurTask + +class BlurWallpaperFilter(private val context: Context) : WallpaperFilter { + + private var blurRadius = 8 + + override fun apply(wallpaper: Bitmap): WallpaperFilter.ApplyTask { + return WallpaperFilter.ApplyTask.create { emitter -> + HokoBlur.with(context) + .scheme(HokoBlur.SCHEME_RENDER_SCRIPT) + .mode(HokoBlur.MODE_STACK) + .radius(blurRadius) + .sampleFactor(8f) + .forceCopy(false) + .needUpscale(true) + .processor() + .asyncBlur(wallpaper, object : AsyncBlurTask.Callback { + override fun onBlurSuccess(bitmap: Bitmap) { + emitter.onSuccess(bitmap) + } + + override fun onBlurFailed(error: Throwable?) { + emitter.onError(error!!) + } + }) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java deleted file mode 100644 index 2b748a68c1..0000000000 --- a/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.java +++ /dev/null @@ -1,228 +0,0 @@ -package foundation.e.blisslauncher.core.blur; - -import android.Manifest; -import android.app.WallpaperManager; -import android.content.Context; -import android.content.pm.PackageManager; -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.Matrix; -import android.support.v4.app.ActivityCompat; -import android.util.DisplayMetrics; -import android.view.Display; -import android.view.WindowManager; - -import com.hoko.blur.HokoBlur; -import com.hoko.blur.processor.BlurProcessor; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; - -import foundation.e.blisslauncher.BlissLauncher; -import foundation.e.blisslauncher.core.Utilities; - -public class BlurWallpaperProvider { - - private final Context context; - private final WallpaperManager wallpaperManager; - - private final BlurProcessor blurProcessor; - - private ExecutorService mDispatcher = Executors.newSingleThreadExecutor(); - - private final Runnable updateRunnable = () -> updateWallpaper(); - - private DisplayMetrics displayMetrics = new DisplayMetrics(); - - private static final float SAMPLE_FACTOR = 8.0f; - - private static BlurWallpaperProvider sInstance; - private Bitmap wallpaper; - private volatile Future mFuture; - private Listener listener; - - private BlurWallpaperProvider(Context context) { - this.context = context; - this.wallpaperManager = WallpaperManager.getInstance(context); - blurProcessor = HokoBlur.with(context).sampleFactor(SAMPLE_FACTOR) - .scheme(HokoBlur.SCHEME_OPENGL) - .mode(HokoBlur.MODE_STACK) - .forceCopy(false) - .needUpscale(true) - .processor(); - init(); - listener = (Listener) context; - } - - public static BlurWallpaperProvider getInstance(Context context) { - if (sInstance == null) { - sInstance = new BlurWallpaperProvider(context); - } - return sInstance; - } - - private void init() { - updateWallpaper(); - } - - private void updateWallpaper() { - if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - return; - } - - if (wallpaperManager.getWallpaperInfo() != null) { - // Wallpaper is live wallpaper so can't support blur effect. - return; - } - wallpaper = Utilities.drawableToBitmap(wallpaperManager.getDrawable(), true); - wallpaper = scaleAndCropToScreenSize(wallpaper); - } - - - public void blur(int radius) { - cancelPreTask(false); - mFuture = mDispatcher.submit(new BlurTask(wallpaper, blurProcessor, radius) { - @Override - void onBlurSuccess(Bitmap bitmap) { - if (bitmap != null && listener != null) { - listener.blurBackgroundLayer(bitmap); - } - } - - @Override - void onBlurFailed(float factor) { - listener.fallbackToDimBackground(factor); - } - }); - } - - public Bitmap mergeLauncherView(Bitmap launcherView) { - updateWallpaper(); - if (wallpaper == null) { // possibly we don't have access to read the wallpaper or the wallpaper is live wallpaper. - return null; - } - int wallpaperWidth = wallpaper.getWidth(); - int wallpaperHeight = wallpaper.getHeight(); - int overlayWidth = launcherView.getWidth(); - int overlayHeight = launcherView.getHeight(); - - // Hack for removing soft navigation bar - if(overlayHeight > wallpaperHeight) { - overlayHeight = wallpaperHeight; - launcherView = Bitmap.createBitmap(launcherView, 0, 0, overlayWidth, overlayHeight); - } - - float marginLeft = (float) (wallpaperWidth * 0.5 - overlayWidth * 0.5); - float marginTop = (float) (wallpaperHeight * 0.5 - overlayHeight * 0.5); - - Bitmap finalBitmap = Bitmap.createBitmap(wallpaperWidth, wallpaperHeight, wallpaper.getConfig()); - Canvas canvas = new Canvas(finalBitmap); - canvas.drawBitmap(wallpaper, new Matrix(), null); - canvas.drawBitmap(launcherView, marginLeft, marginTop, null); - return finalBitmap; - } - - public void blurWithLauncherView(Bitmap view, int radius) { - cancelPreTask(false); - mFuture = mDispatcher.submit(new BlurTask(view, blurProcessor, radius) { - @Override - void onBlurSuccess(Bitmap bitmap) { - if (bitmap != null && listener != null) { - listener.blurFrontLayer(bitmap); - } - } - - @Override - void onBlurFailed(float factor) { - listener.fallbackToDimBackground(factor); - } - }); - } - - public void cancelPreTask(boolean interrupt) { - if (mFuture != null && !mFuture.isCancelled() && !mFuture.isDone()) { - mFuture.cancel(interrupt); - mFuture = null; - } - } - - private Bitmap scaleAndCropToScreenSize(Bitmap wallpaper) { - WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); - Display display = wm.getDefaultDisplay(); - display.getRealMetrics(displayMetrics); - - int width = displayMetrics.widthPixels; - int height = displayMetrics.heightPixels; - - float widthFactor = ((float) width) / wallpaper.getWidth(); - float heightFactor = ((float) height) / wallpaper.getHeight(); - - float upscaleFactor = Math.max(widthFactor, heightFactor); - - if (upscaleFactor <= 0) { - return wallpaper; - } - - int scaledWidth = (int) Math.max(width, (wallpaper.getWidth() * upscaleFactor)); - int scaledHeight = (int) Math.max(height, (wallpaper.getHeight() * upscaleFactor)); - - wallpaper = Bitmap.createScaledBitmap(wallpaper, scaledWidth, scaledHeight, false); - - int navigationBarHeight = 0; - if (BlissLauncher.getApplication(context).getDeviceProfile().hasSoftNavigationBar(context)) { - - int resourceId = context.getResources().getIdentifier("navigation_bar_height", "dimen", "android"); - if (resourceId > 0) { - navigationBarHeight = context.getResources().getDimensionPixelSize(resourceId); - } - } - - int y; - if (wallpaper.getHeight() > height) { - y = (wallpaper.getHeight() - height) / 2; - } else y = 0; - - return Bitmap.createBitmap(wallpaper, 0, y, width, height - navigationBarHeight); - } - - public interface Listener { - void blurBackgroundLayer(Bitmap bitmap); - - void blurFrontLayer(Bitmap bitmap); - - void fallbackToDimBackground(float dimAlpha); - } - - public void clear() { - listener = null; - cancelPreTask(true); - sInstance = null; - } - - private abstract static class BlurTask implements Runnable { - private Bitmap bitmap; - private BlurProcessor blurProcessor; - private int radius; - - BlurTask(Bitmap bitmap, BlurProcessor blurProcessor, int radius) { - this.bitmap = bitmap; - this.blurProcessor = blurProcessor; - this.radius = radius; - } - - @Override - public void run() { - if (bitmap != null && !bitmap.isRecycled() && blurProcessor != null) { - blurProcessor.radius(radius); - onBlurSuccess(blurProcessor.blur(bitmap)); - } else { - onBlurFailed((float) radius / 15); - } - } - - abstract void onBlurSuccess(Bitmap bitmap); - - abstract void onBlurFailed(float factor); - } -} diff --git a/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.kt b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.kt new file mode 100644 index 0000000000..169e68cb88 --- /dev/null +++ b/app/src/main/java/foundation/e/blisslauncher/core/blur/BlurWallpaperProvider.kt @@ -0,0 +1,244 @@ +package foundation.e.blisslauncher.core.blur + +import android.Manifest +import android.app.WallpaperManager +import android.content.Context +import android.content.pm.PackageManager +import android.graphics.Bitmap +import android.graphics.Canvas +import android.graphics.ColorMatrix +import android.graphics.ColorMatrixColorFilter +import android.graphics.Paint +import android.os.Build +import android.support.v4.app.ActivityCompat +import android.util.DisplayMetrics +import android.util.Log +import android.view.WindowManager +import android.widget.Toast +import foundation.e.blisslauncher.core.Utilities +import foundation.e.blisslauncher.core.runOnMainThread +import foundation.e.blisslauncher.core.safeForEach +import foundation.e.blisslauncher.core.utils.SingletonHolder +import foundation.e.blisslauncher.core.utils.ensureOnMainThread +import foundation.e.blisslauncher.core.utils.useApplicationContext +import java.util.* + +class BlurWallpaperProvider(val context: Context) { + + private val wallpaperManager: WallpaperManager = WallpaperManager.getInstance(context) + private val listeners = ArrayList() + private val displayMetrics = DisplayMetrics() + + var wallpaper: Bitmap? = null + private set(value) { + if (field != value) { + field?.recycle() + field = value + } + } + var placeholder: Bitmap? = null + private set(value) { + if (field != value) { + field?.recycle() + field = value + } + } + + private val notifyRunnable = Runnable { + for (listener in listeners) { + listener.onWallpaperChanged() + } + } + + private val vibrancyPaint = Paint(Paint.FILTER_BITMAP_FLAG or Paint.ANTI_ALIAS_FLAG) + + private val mUpdateRunnable = Runnable { updateWallpaper() } + + private val wallpaperFilter = BlurWallpaperFilter(context) + private var applyTask: WallpaperFilter.ApplyTask? = null + + private var updatePending = false + + init { + isEnabled = getEnabledStatus() + updateAsync() + } + + private fun getEnabledStatus() = wallpaperManager.wallpaperInfo == null + + fun updateAsync() { + Utilities.THREAD_POOL_EXECUTOR.execute(mUpdateRunnable) + } + + private fun updateWallpaper() { + if (applyTask != null) { + updatePending = true + return + } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { + if (ActivityCompat.checkSelfPermission( + context, + Manifest.permission.READ_EXTERNAL_STORAGE + ) != PackageManager.PERMISSION_GRANTED + ) { + Log.d("BWP", "NO permission granted") + return + } + } + + val enabled = getEnabledStatus() + if (enabled != isEnabled) { + isEnabled = enabled + runOnMainThread { + listeners.safeForEach(Listener::onEnabledChanged) + } + } +0 + if (!isEnabled) { + wallpaper = null + val wm = + context.getSystemService(Context.WINDOW_SERVICE) as WindowManager + val display = wm.defaultDisplay + display.getRealMetrics(displayMetrics) + val width = displayMetrics.widthPixels + val height = displayMetrics.heightPixels + placeholder = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888) + val canvas = Canvas(placeholder!!) + canvas.drawColor(0x44000000) + return + } + + var wallpaper = try { + Utilities.drawableToBitmap(wallpaperManager.drawable, true) as Bitmap + } catch (e: Exception) { + runOnMainThread { + val msg = "Failed: ${e.message}" + Toast.makeText(context, msg, Toast.LENGTH_LONG).show() + notifyWallpaperChanged() + } + return + } + wallpaper = scaleAndCropToScreenSize(wallpaper) + wallpaper = applyVibrancy(wallpaper) + applyTask = wallpaperFilter.apply(wallpaper).setCallback {result, error -> + if(error == null) { + this@BlurWallpaperProvider.wallpaper = result + runOnMainThread(::notifyWallpaperChanged) + wallpaper.recycle() + }else { + if (error is OutOfMemoryError) { + runOnMainThread { + Toast.makeText(context, "Failed", Toast.LENGTH_LONG).show() + notifyWallpaperChanged() + } + } + wallpaper.recycle() + } + } + applyTask = null + if (updatePending) { + updatePending = false + updateWallpaper() + } + } + + + private fun notifyWallpaperChanged() { + listeners.forEach(Listener::onWallpaperChanged) + } + + private fun applyVibrancy(wallpaper: Bitmap?): Bitmap { + val width = wallpaper!!.width + val height = wallpaper.height + val bitmap = Bitmap.createBitmap( + width, + height, + Bitmap.Config.ARGB_8888 + ) + val canvas = Canvas() + canvas.setBitmap(bitmap) + val colorMatrix = ColorMatrix() + colorMatrix.setSaturation(1.25f) + val filter = ColorMatrixColorFilter(colorMatrix) + vibrancyPaint.colorFilter = filter + canvas.drawBitmap(wallpaper, 0f, 0f, vibrancyPaint) + wallpaper.recycle() + return bitmap + } + + private fun scaleAndCropToScreenSize(wallpaper: Bitmap): Bitmap { + val wm = + context.getSystemService(Context.WINDOW_SERVICE) as WindowManager + val display = wm.defaultDisplay + display.getRealMetrics(displayMetrics) + val width = displayMetrics.widthPixels + val height = displayMetrics.heightPixels + val widthFactor = width.toFloat() / wallpaper!!.width + val heightFactor = height.toFloat() / wallpaper.height + val upscaleFactor = Math.max(widthFactor, heightFactor) + if (upscaleFactor <= 0) { + return wallpaper + } + val scaledWidth = + Math.max(width.toFloat(), wallpaper.width * upscaleFactor).toInt() + val scaledHeight = + Math.max(height.toFloat(), wallpaper.height * upscaleFactor).toInt() + var scaledWallpaper = + Bitmap.createScaledBitmap(wallpaper, scaledWidth, scaledHeight, false) + val navigationBarHeight = 0 + /*if (BlissLauncher.getApplication(context).getDeviceProfile().hasSoftNavigationBar(context)) { + + int resourceId = context.getResources().getIdentifier("navigation_bar_height", "dimen", "android"); + if (resourceId > 0) { + navigationBarHeight = context.getResources().getDimensionPixelSize(resourceId); + } + }*/ + val y: Int + y = if (scaledWallpaper.height > height) { + (scaledWallpaper.height - height) / 2 + } else 0 + + return Bitmap.createBitmap( + scaledWallpaper, + 0, + y, + width, + height - navigationBarHeight + ) + } + + fun addListener(listener: Listener) { + listeners.add(listener) + } + + fun removeListener(listener: Listener) { + listeners.remove(listener) + } + + fun createDrawable(): ShaderBlurDrawable { + return ShaderBlurDrawable(this) + } + + interface Listener { + fun onWallpaperChanged() {} + fun onEnabledChanged() {} + } + + /*fun clear() { + listener = null + cancelPreTask(true) + sInstance = null + }*/ + + companion object : + SingletonHolder(ensureOnMainThread(useApplicationContext(::BlurWallpaperProvider))) { + + var isEnabled: Boolean = false + private var sEnabledFlag: Int = 0 + + fun isEnabled(flag: Int): Boolean { + return isEnabled && sEnabledFlag and flag != 0 + } + } +} diff --git a/app/src/main/java/foundation/e/blisslauncher/core/blur/ShaderBlurDrawable.kt b/app/src/main/java/foundation/e/blisslauncher/core/blur/ShaderBlurDrawable.kt new file mode 100644 index 0000000000..e74a279253 --- /dev/null +++ b/app/src/main/java/foundation/e/blisslauncher/core/blur/ShaderBlurDrawable.kt @@ -0,0 +1,126 @@ +package foundation.e.blisslauncher.core.blur + +import android.graphics.Bitmap +import android.graphics.BitmapShader +import android.graphics.Canvas +import android.graphics.ColorFilter +import android.graphics.Paint +import android.graphics.Path +import android.graphics.PixelFormat +import android.graphics.RectF +import android.graphics.Shader +import android.graphics.drawable.Drawable +import foundation.e.blisslauncher.core.DeviceProfile + +class ShaderBlurDrawable internal constructor(private val blurWallpaperProvider: BlurWallpaperProvider) : + Drawable(), BlurWallpaperProvider.Listener { + + private var blurAlpha = 255 + private val blurPaint = Paint(Paint.FILTER_BITMAP_FLAG or Paint.ANTI_ALIAS_FLAG) + private var blurBitmap: Bitmap? = null + set(value) { + if (field != value) { + field = value + blurPaint.shader = + value?.let { BitmapShader(it, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP) } + } + } + + private val blurBounds = RectF() + private val blurPath = Path() + private var blurPathValid = false + set(value) { + if (field != value) { + field = value + if (!value) { + invalidateSelf() + } + } + } + + var noRadius = true + + + override fun draw(canvas: Canvas) = draw(canvas, noRadius) + + fun draw(canvas: Canvas, noRadius: Boolean = false) { + if (blurAlpha == 0) return + blurBitmap = blurWallpaperProvider.wallpaper + + if(blurBitmap == null) { + blurBitmap = blurWallpaperProvider.placeholder + } + blurBitmap = + if (blurBitmap!!.height > (blurBounds.bottom.toInt() - blurBounds.top.toInt())) { + + Bitmap.createBitmap( + blurBitmap!!, + blurBounds.left.toInt(), blurBounds.top.toInt(), + blurBounds.right.toInt() - blurBounds.left.toInt(), + blurBounds.bottom.toInt() - blurBounds.top.toInt() + ) + } else { + blurBitmap + } + + //setupBlurPath() + + //canvas.translate(0f, -1500f) + if (noRadius) { + canvas.drawRect( + 0f, 0f, + blurBounds.right - blurBounds.left, blurBounds.bottom - blurBounds.top, + blurPaint + ) + } else { + canvas.drawPath(DeviceProfile.path, blurPaint) + } + //canvas.translate(0f, 1500f) + } + + override fun setAlpha(alpha: Int) { + blurAlpha = alpha + blurPaint.alpha = alpha + } + + override fun getAlpha(): Int { + return blurAlpha + } + + private fun setupBlurPath() { + if (blurPathValid) return + + blurPath.reset() + blurPath.addRect( + 0f, 0f, + blurBounds.right - blurBounds.left, blurBounds.bottom - blurBounds.top, Path.Direction.CW + ) + } + + override fun setBounds(left: Int, top: Int, right: Int, bottom: Int) = + setBlurBounds(left.toFloat(), top.toFloat(), right.toFloat(), bottom.toFloat()) + + fun setBlurBounds(left: Float, top: Float, right: Float, bottom: Float) { + if (blurBounds.left != left || + blurBounds.top != top || + blurBounds.right != right || + blurBounds.bottom != bottom + ) { + blurBounds.set(left, top, right, bottom) + blurPathValid = false + } + } + + override fun getOpacity(): Int = PixelFormat.TRANSLUCENT + + override fun onWallpaperChanged() { + invalidateSelf() + } + + override fun setColorFilter(colorFilter: ColorFilter?) { + } + + fun startListening() = blurWallpaperProvider.addListener(this) + + fun stopListening() = blurWallpaperProvider.removeListener(this) +} \ No newline at end of file diff --git a/app/src/main/java/foundation/e/blisslauncher/core/blur/WallpaperFilter.kt b/app/src/main/java/foundation/e/blisslauncher/core/blur/WallpaperFilter.kt new file mode 100644 index 0000000000..c85321ed76 --- /dev/null +++ b/app/src/main/java/foundation/e/blisslauncher/core/blur/WallpaperFilter.kt @@ -0,0 +1,57 @@ +package foundation.e.blisslauncher.core.blur + +import android.graphics.Bitmap + +interface WallpaperFilter { + + fun apply(wallpaper: Bitmap): ApplyTask + + class ApplyTask { + + val emitter = Emitter() + + private var result: Bitmap? = null + private var error: Throwable? = null + + private var callback: ((Bitmap?, Throwable?) -> Unit)? = null + + fun setCallback(callback: (Bitmap?, Throwable?) -> Unit): ApplyTask { + result?.let { + callback(it, null) + return this + } + error?.let { + callback(null, it) + return this + } + this.callback = callback + return this + } + + inner class Emitter { + + fun onSuccess(result: Bitmap) { + callback?.let { + it(result, null) + return + } + this@ApplyTask.result = result + } + + fun onError(error: Throwable) { + callback?.let { + it(null, error) + return + } + this@ApplyTask.error = error + } + } + + companion object { + + inline fun create(source: (Emitter) -> Unit): ApplyTask { + return ApplyTask().also { source(it.emitter) } + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java b/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java index 840c18cfd9..45bebbc83f 100644 --- a/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/broadcast/WallpaperChangeReceiver.java @@ -25,7 +25,7 @@ public class WallpaperChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - BlurWallpaperProvider.getInstance(context).clear(); + BlurWallpaperProvider.Companion.getInstance(context).updateAsync(); updateOffset(); } diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/BlissFrameLayout.java b/app/src/main/java/foundation/e/blisslauncher/core/customviews/BlissFrameLayout.java index d52bae8cc1..8f6f8d0d92 100755 --- a/app/src/main/java/foundation/e/blisslauncher/core/customviews/BlissFrameLayout.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/BlissFrameLayout.java @@ -34,7 +34,6 @@ import foundation.e.blisslauncher.features.notification.DotRenderer; public class BlissFrameLayout extends FrameLayout { - private static final String TAG = "BlissFrameLayout"; private final Context mContext; private boolean hasBadge = false; @@ -66,16 +65,15 @@ public class BlissFrameLayout extends FrameLayout { } public BlissFrameLayout(Context context, - AttributeSet attrs) { + AttributeSet attrs) { this(context, attrs, 0); } public BlissFrameLayout(Context context, AttributeSet attrs, - int defStyleAttr) { + int defStyleAttr) { super(context, attrs, defStyleAttr); mContext = context; init(); - } private void init() { @@ -86,8 +84,8 @@ public class BlissFrameLayout extends FrameLayout { } @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); } @Override @@ -148,7 +146,7 @@ public class BlissFrameLayout extends FrameLayout { bindApplicationItem((ApplicationItem) launcherItem); } else if (launcherItem.itemType == Constants.ITEM_TYPE_SHORTCUT) { bindShortcutItem((ShortcutItem) launcherItem); - }else if(launcherItem.itemType == Constants.ITEM_TYPE_FOLDER){ + } else if (launcherItem.itemType == Constants.ITEM_TYPE_FOLDER) { bindFolderItem((FolderItem) launcherItem); } } @@ -253,6 +251,4 @@ public class BlissFrameLayout extends FrameLayout { tags.add(applicationItem); setTag(tags); } - - } diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/BlurBackgroundView.kt b/app/src/main/java/foundation/e/blisslauncher/core/customviews/BlurBackgroundView.kt new file mode 100644 index 0000000000..717aa39754 --- /dev/null +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/BlurBackgroundView.kt @@ -0,0 +1,80 @@ +package foundation.e.blisslauncher.core.customviews + +import android.content.Context +import android.graphics.Canvas +import android.graphics.drawable.Drawable +import android.util.AttributeSet +import android.view.View +import android.view.WindowInsets +import foundation.e.blisslauncher.core.blur.BlurWallpaperProvider +import foundation.e.blisslauncher.core.blur.ShaderBlurDrawable +import foundation.e.blisslauncher.core.runOnMainThread + +class BlurBackgroundView(context: Context, attrs: AttributeSet?) : View(context, attrs), Insettable, + BlurWallpaperProvider.Listener { + + private val blurWallpaperProvider by lazy { BlurWallpaperProvider.getInstance(context) } + + private var fullBlurDrawable: ShaderBlurDrawable? = null + private var blurAlpha = 255 + + private val blurDrawableCallback by lazy { + object : Drawable.Callback { + override fun unscheduleDrawable(who: Drawable?, what: Runnable?) { + } + + override fun invalidateDrawable(who: Drawable?) { + runOnMainThread { invalidate() } + } + + override fun scheduleDrawable(who: Drawable?, what: Runnable?, `when`: Long) { + } + } + } + + init { + createFullBlurDrawable() + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + + BlurWallpaperProvider.getInstance(context).addListener(this) + fullBlurDrawable?.startListening() + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + + BlurWallpaperProvider.getInstance(context).removeListener(this) + fullBlurDrawable?.stopListening() + } + + override fun onDraw(canvas: Canvas) { + fullBlurDrawable?.apply { + alpha = blurAlpha + this.draw(canvas) + } + } + + override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) { + if (changed) { + fullBlurDrawable?.setBounds(left, top, right, bottom) + } + } + + private fun createFullBlurDrawable() { + fullBlurDrawable?.let { if (isAttachedToWindow) it.stopListening() } + fullBlurDrawable = blurWallpaperProvider.createDrawable().apply { + callback = blurDrawableCallback + setBounds(left, top, right, bottom) + if (isAttachedToWindow) startListening() + } + } + + override fun onEnabledChanged() { + createFullBlurDrawable() + } + + override fun setInsets(insets: WindowInsets) {} +} \ No newline at end of file diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/DockGridLayout.java b/app/src/main/java/foundation/e/blisslauncher/core/customviews/DockGridLayout.java index 0693126884..126079e484 100755 --- a/app/src/main/java/foundation/e/blisslauncher/core/customviews/DockGridLayout.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/DockGridLayout.java @@ -1,16 +1,47 @@ package foundation.e.blisslauncher.core.customviews; import android.content.Context; +import android.graphics.Canvas; +import android.graphics.drawable.Drawable; +import android.support.annotation.NonNull; import android.util.AttributeSet; +import android.view.WindowInsets; import android.widget.GridLayout; import foundation.e.blisslauncher.BlissLauncher; import foundation.e.blisslauncher.core.DeviceProfile; +import foundation.e.blisslauncher.core.KotlinUtilsKt; +import foundation.e.blisslauncher.core.blur.BlurWallpaperProvider; +import foundation.e.blisslauncher.core.blur.ShaderBlurDrawable; -public class DockGridLayout extends GridLayout { +public class DockGridLayout extends GridLayout implements Insettable, BlurWallpaperProvider.Listener { private Context mContext; + private final BlurWallpaperProvider blurWallpaperProvider; + private ShaderBlurDrawable fullBlurDrawable = null; + private int blurAlpha = 255; + + private final Drawable.Callback blurDrawableCallback = new Drawable.Callback() { + @Override + public void invalidateDrawable(@NonNull Drawable who) { + KotlinUtilsKt.runOnMainThread(() -> { + invalidate(); + return null; + }); + } + + @Override + public void scheduleDrawable(@NonNull Drawable who, @NonNull Runnable what, long when) { + + } + + @Override + public void unscheduleDrawable(@NonNull Drawable who, @NonNull Runnable what) { + + } + }; + public DockGridLayout(Context context) { this(context, null); } @@ -22,15 +53,68 @@ public class DockGridLayout extends GridLayout { public DockGridLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); this.mContext = context; + setWillNotDraw(false); + blurWallpaperProvider = BlurWallpaperProvider.Companion.getInstance(context); + createBlurDrawable(); + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + + BlurWallpaperProvider.Companion.getInstance(mContext).addListener(this); + fullBlurDrawable.startListening(); + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + + BlurWallpaperProvider.Companion.getInstance(mContext).removeListener(this); + fullBlurDrawable.stopListening(); } @Override - protected void onMeasure(int widthSpec, int heightSpec) { - super.onMeasure(widthSpec, heightSpec); + protected void onDraw(Canvas canvas) { + fullBlurDrawable.setAlpha(blurAlpha); + fullBlurDrawable.draw(canvas); + super.onDraw(canvas); + } + + @Override + protected void onLayout(boolean changed, int left, int top, int right, int bottom) { + super.onLayout(changed, left, top, right, bottom); + if (changed) { + fullBlurDrawable.setBounds(left, top, right, bottom); + } + } + + @Override + public void setInsets(WindowInsets insets) { DeviceProfile deviceProfile = BlissLauncher.getApplication(mContext).getDeviceProfile(); - setMeasuredDimension(deviceProfile.getAvailableWidthPx(), - deviceProfile.hotseatCellHeightPx); - this.setPadding(deviceProfile.iconDrawablePaddingPx / 2, 0, - deviceProfile.iconDrawablePaddingPx / 2, 0); + InsettableRelativeLayout.LayoutParams lp = (InsettableRelativeLayout.LayoutParams) getLayoutParams(); + lp.height = deviceProfile.hotseatCellHeightPx + insets.getSystemWindowInsetBottom(); + setPadding(deviceProfile.iconDrawablePaddingPx / 2, 0, + deviceProfile.iconDrawablePaddingPx / 2, insets.getSystemWindowInsetBottom()); + setLayoutParams(lp); + } + + private void createBlurDrawable() { + if (isAttachedToWindow()) { + fullBlurDrawable.stopListening(); + } + fullBlurDrawable = blurWallpaperProvider.createDrawable(); + fullBlurDrawable.setCallback(blurDrawableCallback); + fullBlurDrawable.setBounds(getLeft(), getTop(), getRight(), getBottom()); + if (isAttachedToWindow()) fullBlurDrawable.startListening(); + } + + @Override + public void onEnabledChanged() { + createBlurDrawable(); + } + + @Override + public void onWallpaperChanged() { } -} +} \ No newline at end of file diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java b/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java index c57a89619c..c2d52ccfca 100755 --- a/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java @@ -16,6 +16,7 @@ import android.view.View; import android.view.ViewConfiguration; import android.view.ViewGroup; import android.view.ViewParent; +import android.view.WindowInsets; import android.widget.Scroller; import java.util.ArrayList; @@ -27,7 +28,7 @@ import foundation.e.blisslauncher.features.launcher.DetectSwipeGestureListener; import foundation.e.blisslauncher.features.launcher.LauncherActivity; import foundation.e.blisslauncher.features.launcher.OnSwipeDownListener; -public class HorizontalPager extends ViewGroup { +public class HorizontalPager extends ViewGroup implements Insettable{ private static final String TAG = "HorizontalPager"; private static final int INVALID_SCREEN = -1; public static final int SPEC_UNDEFINED = -1; @@ -61,6 +62,7 @@ public class HorizontalPager extends ViewGroup { private Set mListeners = new HashSet<>(); private boolean mIsUiCreated; private GestureDetectorCompat gestureDetectorCompat; + private WindowInsets insets; public HorizontalPager(Context context, AttributeSet attrs) { this(context, attrs, 0); @@ -147,6 +149,7 @@ public class HorizontalPager extends ViewGroup { @Override protected void dispatchDraw(Canvas canvas) { + Log.d(TAG, "dispatchDraw() called with: canvas = [" + canvas + "]"); final long drawingTime = getDrawingTime(); // todo be smarter about which children need drawing final int count = getChildCount(); @@ -529,6 +532,26 @@ public class HorizontalPager extends ViewGroup { return mAllowLongPress; } + @Override + public void setInsets(WindowInsets insets) { + InsettableRelativeLayout.LayoutParams lp = (InsettableRelativeLayout.LayoutParams) getLayoutParams(); + lp.topMargin = insets.getSystemWindowInsetTop(); + setLayoutParams(lp); + updateInsetsForChildren(); + this.insets = insets; + } + + private void updateInsetsForChildren() { + int childCount = getChildCount(); + for (int index = 0; index < childCount; ++index){ + View child = getChildAt(index); + if(child instanceof Insettable) { + Log.d(TAG, "child is instance of insettable"); + ((Insettable) child).setInsets(insets); + } + } + } + public static class SavedState extends BaseSavedState { int currentScreen = -1; diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/Insettable.java b/app/src/main/java/foundation/e/blisslauncher/core/customviews/Insettable.java new file mode 100644 index 0000000000..91d686b779 --- /dev/null +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/Insettable.java @@ -0,0 +1,13 @@ +package foundation.e.blisslauncher.core.customviews; + +import android.view.View; +import android.view.WindowInsets; + +/** + * Allows the implementing {@link View} to not draw underneath system bars. + * e.g., notification bar on top and home key area on the bottom. + */ +public interface Insettable { + + void setInsets(WindowInsets insets); +} diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableRelativeLayout.java b/app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableRelativeLayout.java new file mode 100644 index 0000000000..9342c9143f --- /dev/null +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableRelativeLayout.java @@ -0,0 +1,87 @@ +package foundation.e.blisslauncher.core.customviews; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowInsets; +import android.widget.RelativeLayout; + +import foundation.e.blisslauncher.R; + +public class InsettableRelativeLayout extends RelativeLayout { + + protected WindowInsets mInsets; + + + public InsettableRelativeLayout(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public WindowInsets onApplyWindowInsets(WindowInsets insets) { + updateChildInsets(insets); + mInsets = new WindowInsets(insets); + return insets; + } + + private void updateChildInsets(WindowInsets insets) { + if(insets == null) return; + int childCount = getChildCount(); + for (int index = 0; index < childCount; ++index){ + View child = getChildAt(index); + if(child instanceof Insettable) { + ((Insettable) child).setInsets(insets); + } + } + } + + @Override + public LayoutParams generateLayoutParams(AttributeSet attrs) { + return new InsettableRelativeLayout.LayoutParams(getContext(), attrs); + } + + @Override + protected LayoutParams generateDefaultLayoutParams() { + return new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); + } + + // Override to allow type-checking of LayoutParams. + @Override + protected boolean checkLayoutParams(ViewGroup.LayoutParams p) { + return p instanceof InsettableRelativeLayout.LayoutParams; + } + + @Override + protected LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) { + return new LayoutParams(p); + } + + public static class LayoutParams extends RelativeLayout.LayoutParams { + public boolean ignoreInsets = false; + + public LayoutParams(Context c, AttributeSet attrs) { + super(c, attrs); + TypedArray a = c.obtainStyledAttributes(attrs, + R.styleable.InsettableFrameLayout_Layout); + ignoreInsets = a.getBoolean( + R.styleable.InsettableFrameLayout_Layout_layout_ignoreInsets, false); + a.recycle(); + } + + public LayoutParams(int width, int height) { + super(width, height); + } + + public LayoutParams(ViewGroup.LayoutParams lp) { + super(lp); + } + } + + @Override + public void onViewAdded(View child) { + super.onViewAdded(child); + updateChildInsets(mInsets); + } +} \ No newline at end of file diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableScrollLayout.java b/app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableScrollLayout.java new file mode 100644 index 0000000000..438e4b29c9 --- /dev/null +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/InsettableScrollLayout.java @@ -0,0 +1,32 @@ +package foundation.e.blisslauncher.core.customviews; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.util.AttributeSet; +import android.view.WindowInsets; +import android.widget.ScrollView; + +public class InsettableScrollLayout extends ScrollView implements Insettable { + + public InsettableScrollLayout(@NonNull Context context) { + super(context); + } + + public InsettableScrollLayout(@NonNull Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + } + + public InsettableScrollLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + @Override + public void setInsets(WindowInsets insets) { + int top = getPaddingTop(); + int left = getPaddingLeft(); + int right = getPaddingRight(); + int bottom = getPaddingBottom(); + setPadding(left, top, right, bottom + insets.getSystemWindowInsetBottom()); + } +} diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/SquareFrameLayout.java b/app/src/main/java/foundation/e/blisslauncher/core/customviews/SquareFrameLayout.java index 85cca4514a..6d6ac74198 100755 --- a/app/src/main/java/foundation/e/blisslauncher/core/customviews/SquareFrameLayout.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/SquareFrameLayout.java @@ -11,18 +11,20 @@ import android.widget.FrameLayout; */ public class SquareFrameLayout extends FrameLayout { + public SquareFrameLayout(@NonNull Context context) { - super(context); + this(context, null); } public SquareFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs) { - super(context, attrs); + this(context, attrs, 0); } public SquareFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); + setWillNotDraw(false); } @Override diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/SquareImageView.java b/app/src/main/java/foundation/e/blisslauncher/core/customviews/SquareImageView.java index ef576dcb26..a13a834178 100755 --- a/app/src/main/java/foundation/e/blisslauncher/core/customviews/SquareImageView.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/SquareImageView.java @@ -9,28 +9,20 @@ import android.util.AttributeSet; public class SquareImageView extends android.support.v7.widget.AppCompatImageView { - public SquareImageView(Context context) { - super(context); - } - - public SquareImageView(Context context, AttributeSet attrs) { - super(context, attrs); + this(context, null); } - public SquareImageView(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); + public SquareImageView(Context context, AttributeSet attributeSet) { + super(context, attributeSet); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); - int width = getMeasuredWidth(); int height = getMeasuredHeight(); int size = width < height ? width : height; setMeasuredDimension(size, size); } - - } \ No newline at end of file diff --git a/app/src/main/java/foundation/e/blisslauncher/core/executors/MainThreadExecutor.java b/app/src/main/java/foundation/e/blisslauncher/core/executors/MainThreadExecutor.java new file mode 100644 index 0000000000..367db09fb0 --- /dev/null +++ b/app/src/main/java/foundation/e/blisslauncher/core/executors/MainThreadExecutor.java @@ -0,0 +1,52 @@ +package foundation.e.blisslauncher.core.executors; + +import android.os.Handler; +import android.os.Looper; +import android.support.annotation.NonNull; + +import java.util.List; +import java.util.concurrent.AbstractExecutorService; +import java.util.concurrent.TimeUnit; + +public class MainThreadExecutor extends AbstractExecutorService { + + private final Handler mHandler; + + public MainThreadExecutor() { + mHandler = new Handler(Looper.getMainLooper()); + } + @Override + public void shutdown() { + throw new UnsupportedOperationException(); + } + + @NonNull + @Override + public List shutdownNow() { + throw new UnsupportedOperationException(); + } + + @Override + public boolean isShutdown() { + return false; + } + + @Override + public boolean isTerminated() { + return false; + } + + @Override + public boolean awaitTermination(long timeout, @NonNull TimeUnit unit) throws InterruptedException { + throw new UnsupportedOperationException(); + } + + @Override + public void execute(@NonNull Runnable runnable) { + if (mHandler.getLooper() == Looper.myLooper()) { + runnable.run(); + } else { + mHandler.post(runnable); + } + } +} diff --git a/app/src/main/java/foundation/e/blisslauncher/core/utils/GraphicsUtil.java b/app/src/main/java/foundation/e/blisslauncher/core/utils/GraphicsUtil.java index 5beeee8546..8ea6e81270 100755 --- a/app/src/main/java/foundation/e/blisslauncher/core/utils/GraphicsUtil.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/utils/GraphicsUtil.java @@ -130,7 +130,7 @@ public class GraphicsUtil { Bitmap mergedBitmap = Bitmap.createBitmap(width, height, Bitmap .Config.ARGB_8888); Canvas canvas = new Canvas(mergedBitmap); - canvas.drawColor(isFolder ? Color.WHITE : getDominantColor(bitmap)); + canvas.drawColor(isFolder ? 0xCCD3D3D3 : getDominantColor(bitmap)); Paint paint = new Paint( Paint.ANTI_ALIAS_FLAG | Paint.DITHER_FLAG | Paint.FILTER_BITMAP_FLAG); diff --git a/app/src/main/java/foundation/e/blisslauncher/core/utils/SingletonHolder.kt b/app/src/main/java/foundation/e/blisslauncher/core/utils/SingletonHolder.kt new file mode 100644 index 0000000000..7a9b470ab9 --- /dev/null +++ b/app/src/main/java/foundation/e/blisslauncher/core/utils/SingletonHolder.kt @@ -0,0 +1,55 @@ +package foundation.e.blisslauncher.core.utils + +import android.content.Context +import android.os.Looper +import foundation.e.blisslauncher.core.executors.MainThreadExecutor +import java.util.concurrent.Callable +import java.util.concurrent.ExecutionException + +open class SingletonHolder(creator: (A) -> T) { + private var creator: ((A) -> T)? = creator + @Volatile + private var instance: T? = null + + open fun getInstance(arg: A): T { + val i = instance + if (i != null) { + return i + } + + return synchronized(this) { + val i2 = instance + if (i2 != null) { + i2 + } else { + val created = creator!!(arg) + instance = created + creator = null + created + } + } + } + + protected fun dangerousGetInstance() = instance +} + + +fun ensureOnMainThread(creator: (A) -> T): (A) -> T { + return { it -> + if (Looper.myLooper() == Looper.getMainLooper()) { + creator(it) + } else { + try { + MainThreadExecutor().submit(Callable { creator(it) }).get() + } catch (e: InterruptedException) { + throw RuntimeException(e) + } catch (e: ExecutionException) { + throw RuntimeException(e) + } + + } + } +} +fun useApplicationContext(creator: (Context) -> T): (Context) -> T { + return { it -> creator(it.applicationContext) } +} \ No newline at end of file diff --git a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java index 5e8198a0a3..e7ce5f4e37 100755 --- a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java +++ b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java @@ -4,10 +4,8 @@ import android.Manifest; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; -import android.animation.ArgbEvaluator; import android.animation.LayoutTransition; import android.animation.ObjectAnimator; -import android.animation.ValueAnimator; import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; @@ -20,15 +18,14 @@ import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; +import android.content.ContextWrapper; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.LauncherApps; import android.content.pm.PackageManager; import android.graphics.Bitmap; -import android.graphics.Color; import android.graphics.Point; import android.graphics.Rect; -import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.location.LocationManager; import android.net.Uri; @@ -68,7 +65,6 @@ import android.widget.GridLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; -import android.widget.ScrollView; import android.widget.SeekBar; import android.widget.TextView; import android.widget.Toast; @@ -92,7 +88,6 @@ import foundation.e.blisslauncher.core.Alarm; import foundation.e.blisslauncher.core.DeviceProfile; import foundation.e.blisslauncher.core.Preferences; import foundation.e.blisslauncher.core.Utilities; -import foundation.e.blisslauncher.core.blur.BlurWallpaperProvider; import foundation.e.blisslauncher.core.broadcast.ManagedProfileBroadcastReceiver; import foundation.e.blisslauncher.core.broadcast.TimeChangeBroadcastReceiver; import foundation.e.blisslauncher.core.broadcast.WallpaperChangeReceiver; @@ -101,6 +96,8 @@ import foundation.e.blisslauncher.core.customviews.BlissFrameLayout; import foundation.e.blisslauncher.core.customviews.BlissInput; import foundation.e.blisslauncher.core.customviews.DockGridLayout; import foundation.e.blisslauncher.core.customviews.HorizontalPager; +import foundation.e.blisslauncher.core.customviews.InsettableRelativeLayout; +import foundation.e.blisslauncher.core.customviews.InsettableScrollLayout; import foundation.e.blisslauncher.core.customviews.PageIndicatorLinearLayout; import foundation.e.blisslauncher.core.customviews.RoundedWidgetView; import foundation.e.blisslauncher.core.customviews.SquareFrameLayout; @@ -154,7 +151,7 @@ import static android.view.View.VISIBLE; public class LauncherActivity extends AppCompatActivity implements AutoCompleteAdapter.OnSuggestionClickListener, - OnSwipeDownListener, BlurWallpaperProvider.Listener { + OnSwipeDownListener { public static final int REORDER_TIMEOUT = 350; private final static int EMPTY_LOCATION_DRAG = -999; @@ -204,9 +201,8 @@ public class LauncherActivity extends AppCompatActivity implements private List mUsageStats; private FrameLayout swipeSearchContainer; - private RelativeLayout workspace; - private View backgroundLayer; // Blur layer for horizontal pager. - private View frontLayer; // Blur layer for folders and search container. + private InsettableRelativeLayout workspace; + private View blurLayer; // Blur layer for folders and search container. private BroadcastReceiver mWeatherReceiver = new BroadcastReceiver() { @Override @@ -219,14 +215,12 @@ public class LauncherActivity extends AppCompatActivity implements private FolderItem activeFolder; private BlissFrameLayout activeFolderView; private int activeDot; - private int statusBarHeight; private static final String TAG = "LauncherActivity"; private AppWidgetManager mAppWidgetManager; private WidgetHost mAppWidgetHost; private LinearLayout widgetContainer; - ArgbEvaluator argbEvaluator = new ArgbEvaluator(); private FrameLayout widgetsPage; private SearchInputDisposableObserver searchDisposableObserver; private AnimatorSet currentAnimator; @@ -235,25 +229,25 @@ public class LauncherActivity extends AppCompatActivity implements private float startScaleFinal; private boolean showSwipeSearch; private RoundedWidgetView activeRoundedWidgetView; - private boolean widgetResizeContainerVisible; // EventRelay to handle pass events related to app addition, deletion or changed. private EventRelay events; private ManagedProfileBroadcastReceiver managedProfileReceiver; - private boolean forceReload; - private AppProvider appProvider; private int moveTo; - private Bitmap mergedView; - private int blurRadius; private WallpaperChangeReceiver wallpaperChangeReceiver; + public static LauncherActivity getLauncher(Context context) { + if (context instanceof LauncherActivity) { + return (LauncherActivity) context; + } + return ((LauncherActivity) ((ContextWrapper) context).getBaseContext()); + } + @SuppressLint("InflateParams") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - appProvider = BlissLauncher.getApplication(this).getAppProvider(); - prepareBroadcastReceivers(); mDeviceProfile = BlissLauncher.getApplication(this).getDeviceProfile(); @@ -322,13 +316,8 @@ public class LauncherActivity extends AppCompatActivity implements } }); mHorizontalPager = mLauncherView.findViewById(R.id.pages_container); - backgroundLayer = mLauncherView.findViewById(R.id.background_layer); - frontLayer = mLauncherView.findViewById(R.id.blur_layer); - statusBarHeight = 0; - int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); - if (resourceId > 0) { - statusBarHeight = getResources().getDimensionPixelSize(resourceId); - } + blurLayer = mLauncherView.findViewById(R.id.blur_layer); + blurLayer.setAlpha(0f); mDock = mLauncherView.findViewById(R.id.dock); mIndicator = mLauncherView.findViewById(R.id.page_indicator); @@ -345,11 +334,12 @@ public class LauncherActivity extends AppCompatActivity implements wobbleAnimation = AnimationUtils.loadAnimation(this, R.anim.wobble); wobbleReverseAnimation = AnimationUtils.loadAnimation(this, R.anim.wobble_reverse); getWindow().getDecorView().setSystemUiVisibility( - View.SYSTEM_UI_FLAG_LAYOUT_STABLE + View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); workspace.setOnClickListener(v -> { if (swipeSearchContainer.getVisibility() == VISIBLE) { - hideSwipeSearchContainer(18); + hideSwipeSearchContainer(); } }); } @@ -485,7 +475,6 @@ public class LauncherActivity extends AppCompatActivity implements getCompositeDisposable().dispose(); events.unsubscribe(); BlissLauncher.getApplication(this).getAppProvider().clear(); - BlurWallpaperProvider.getInstance(this).clear(); } public void onAppAddEvent(AppAddEvent appAddEvent) { @@ -1111,7 +1100,7 @@ public class LauncherActivity extends AppCompatActivity implements float fraction = (float) (mDeviceProfile.availableWidthPx - scrollX) / mDeviceProfile.availableWidthPx; int radius = (int) (fraction * 18); - BlurWallpaperProvider.getInstance(LauncherActivity.this).blur(radius); + blurLayer.setAlpha(fraction); } if (isViewScrolling) { dragDropEnabled = false; @@ -1120,16 +1109,19 @@ public class LauncherActivity extends AppCompatActivity implements @Override public void onViewScrollFinished(int page) { + Log.d(TAG, "onViewScrollFinished() called with: page = [" + page + "]"); isViewScrolling = false; - if (page != 0) { - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); - backgroundLayer.setBackground(null); - } - if (mFolderWindowContainer.getVisibility() != VISIBLE) { - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); - frontLayer.setBackground(null); - } + /*if(page == 0) { + int flags = getWindow().getDecorView().getSystemUiVisibility(); + getWindow().getDecorView().setSystemUiVisibility(flags ^ SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); + } else { + int flags = getWindow().getDecorView().getSystemUiVisibility(); + getWindow().getDecorView().setSystemUiVisibility(flags | SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); + }*/ + + blurLayer.setAlpha(page == 0 ? 1f : 0f); + if (currentPageNumber != page) { currentPageNumber = page; // Remove mIndicator and mDock from widgets page, and make them @@ -1162,38 +1154,6 @@ public class LauncherActivity extends AppCompatActivity implements }); } - @Override - public void blurBackgroundLayer(Bitmap bitmap) { - BitmapDrawable drawable = new BitmapDrawable(bitmap); - new Handler(Looper.getMainLooper()) - .post(() -> { - backgroundLayer.setBackground(drawable); - }); } - - @Override - public void blurFrontLayer(Bitmap bitmap) { - BitmapDrawable drawable = new BitmapDrawable(bitmap); - new Handler(Looper.getMainLooper()) - .post(() -> { - frontLayer.setBackground(drawable); - }); - } - - @Override - public void fallbackToDimBackground(float dimAlpha) { - int color = 0x44000000; - int alpha = Math.round(Color.alpha(color) * dimAlpha); - int red = Color.red(color); - int green = Color.green(color); - int blue = Color.blue(color); - runOnUiThread(() -> backgroundLayer.setBackgroundColor(Color.argb(alpha, red, green, blue))); - } - - private void removeBlur(View view) { - new Handler(Looper.getMainLooper()) - .post(() -> view.setBackground(null)); - } - public void refreshSuggestedApps(ViewGroup viewGroup, boolean forceRefresh) { TextView openUsageAccessSettingsTv = viewGroup.findViewById(R.id.openUsageAccessSettings); GridLayout suggestedAppsGridLayout = viewGroup.findViewById(R.id.suggestedAppGrid); @@ -1286,7 +1246,7 @@ public class LauncherActivity extends AppCompatActivity implements grid.setRowCount(mDeviceProfile.numRows); grid.setLayoutTransition(getDefaultLayoutTransition()); grid.setPadding(mDeviceProfile.iconDrawablePaddingPx / 2, - (int) (statusBarHeight + Utilities.pxFromDp(8, this)), + (int) (Utilities.pxFromDp(8, this)), mDeviceProfile.iconDrawablePaddingPx / 2, 0); return grid; } @@ -1295,12 +1255,12 @@ public class LauncherActivity extends AppCompatActivity implements widgetsPage = (FrameLayout) getLayoutInflater().inflate(R.layout.widgets_page, mHorizontalPager, false); widgetContainer = widgetsPage.findViewById(R.id.widget_container); - widgetsPage.setPadding(0, - (int) (statusBarHeight + Utilities.pxFromDp(8, this)), - 0, 0); + /*widgetsPage.setPadding(0, + (int) (Utilities.pxFromDp(8, this)), + 0, 0);*/ mHorizontalPager.addView(widgetsPage, 0); widgetsPage.setOnDragListener(null); - ScrollView scrollView = widgetsPage.findViewById(R.id.widgets_scroll_container); + InsettableScrollLayout scrollView = widgetsPage.findViewById(R.id.widgets_scroll_container); scrollView.setOnTouchListener((v, event) -> { if (widgetsPage.findViewById(R.id.widget_resizer_container).getVisibility() == VISIBLE) { @@ -1308,6 +1268,7 @@ public class LauncherActivity extends AppCompatActivity implements } return false; }); + scrollView.post(() -> scrollView.setInsets(workspace.getRootWindowInsets())); currentPageNumber = 1; mHorizontalPager.setCurrentPage(currentPageNumber); @@ -2799,10 +2760,9 @@ public class LauncherActivity extends AppCompatActivity implements // Construct and run the parallel animation of the four translation and // scale properties (X, Y, SCALE_X, and SCALE_Y). AnimatorSet set = new AnimatorSet(); - ValueAnimator valueAnimator = ValueAnimator.ofInt(0, 18); - mergedView = BlurWallpaperProvider.getInstance(this).mergeLauncherView(getLauncherView()); + /*ValueAnimator valueAnimator = ValueAnimator.ofInt(0, 18); valueAnimator.addUpdateListener(animation -> - BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue())); + BlurWallpaperProvider.getInstance(this).blur((Integer) animation.getAnimatedValue()));*/ set.play(ObjectAnimator.ofFloat(mFolderWindowContainer, View.X, startBounds.left, finalBounds.left)) .with(ObjectAnimator.ofFloat(mFolderWindowContainer, View.Y, @@ -2811,11 +2771,11 @@ public class LauncherActivity extends AppCompatActivity implements startScale, 1f)) .with(ObjectAnimator.ofFloat(mFolderWindowContainer, View.SCALE_Y, startScale, 1f)) - .with(valueAnimator) - .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 1f, 0f)) - .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 1f, 0f)) - .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f, 0f)); - set.setDuration(360); + .with(ObjectAnimator.ofFloat(blurLayer, View.ALPHA, 1f)) + .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 0f)) + .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 0f)) + .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 0f)); + set.setDuration(300); set.setInterpolator(new LinearInterpolator()); set.addListener(new AnimatorListenerAdapter() { @Override @@ -2828,22 +2788,21 @@ public class LauncherActivity extends AppCompatActivity implements // is the center of the view). mFolderWindowContainer.setPivotX(0f); mFolderWindowContainer.setPivotY(0f); - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); + //BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); } @Override public void onAnimationEnd(Animator animation) { currentAnimator = null; - mergedView = null; + } @Override public void onAnimationCancel(Animator animation) { currentAnimator = null; - mergedView = null; - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); - removeBlur(frontLayer); + mFolderWindowContainer.setVisibility(GONE); + blurLayer.setAlpha(0f); mHorizontalPager.setAlpha(1f); mIndicator.setAlpha(1f); mDock.setAlpha(1f); @@ -2889,9 +2848,9 @@ public class LauncherActivity extends AppCompatActivity implements // Animate the four positioning/sizing properties in parallel, // back to their original values. AnimatorSet set = new AnimatorSet(); - ValueAnimator valueAnimator = ValueAnimator.ofInt(18, 0); + /*ValueAnimator valueAnimator = ValueAnimator.ofInt(18, 0); valueAnimator.addUpdateListener(animation -> - BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue())); + BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue()));*/ set.play(ObjectAnimator .ofFloat(mFolderWindowContainer, View.X, startBounds.left)) .with(ObjectAnimator @@ -2903,29 +2862,27 @@ public class LauncherActivity extends AppCompatActivity implements .with(ObjectAnimator .ofFloat(mFolderWindowContainer, View.SCALE_Y, startScaleFinal)) - .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 0f, 1f)) - .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 0f, 1f)) - .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 0f, 1f)) - .with(valueAnimator); - set.setDuration(360); + .with(ObjectAnimator.ofFloat(blurLayer, View.ALPHA, 0f)) + .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 1f)) + .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 1f)) + .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f)); + //.with(valueAnimator); + set.setDuration(300); set.setInterpolator(new LinearInterpolator()); set.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { mFolderWindowContainer.setVisibility(View.GONE); currentAnimator = null; - mergedView = null; - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); - removeBlur(frontLayer); + } @Override public void onAnimationCancel(Animator animation) { mFolderWindowContainer.setVisibility(View.GONE); currentAnimator = null; - mergedView = null; - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); - removeBlur(frontLayer); + + blurLayer.setAlpha(0f); mHorizontalPager.setAlpha(1f); mIndicator.setAlpha(1f); mDock.setAlpha(1f); @@ -2965,7 +2922,7 @@ public class LauncherActivity extends AppCompatActivity implements } if (swipeSearchContainer.getVisibility() == VISIBLE) { - hideSwipeSearchContainer(18); + hideSwipeSearchContainer(); } if (isWobbling) { @@ -2980,23 +2937,21 @@ public class LauncherActivity extends AppCompatActivity implements currentAnimator.cancel(); } AnimatorSet set = new AnimatorSet(); - ValueAnimator blurAnimator = ValueAnimator.ofInt(blurRadius, 18); + /*ValueAnimator blurAnimator = ValueAnimator.ofInt(blurRadius, 18); blurAnimator.addUpdateListener(animation -> - BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue())); + BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue()));*/ set.play(ObjectAnimator.ofFloat(swipeSearchContainer, View.TRANSLATION_Y, 0)) - .with(blurAnimator) + .with(ObjectAnimator.ofFloat(blurLayer, View.ALPHA, 1f)) .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 0f)) .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 0f)) .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 0f)); - set.setDuration(500); + set.setDuration(300); set.setInterpolator(new LinearInterpolator()); set.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationCancel(Animator animation) { super.onAnimationCancel(animation); currentAnimator = null; - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); - removeBlur(frontLayer); swipeSearchContainer.setVisibility(GONE); mHorizontalPager.setVisibility(VISIBLE); mIndicator.setVisibility(VISIBLE); @@ -3007,7 +2962,7 @@ public class LauncherActivity extends AppCompatActivity implements public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); currentAnimator = null; - mergedView = null; + mHorizontalPager.setVisibility(GONE); mIndicator.setVisibility(GONE); mDock.setVisibility(GONE); @@ -3089,22 +3044,20 @@ public class LauncherActivity extends AppCompatActivity implements }); } - private void hideSwipeSearchContainer(int startBlurRadius) { + private void hideSwipeSearchContainer() { if (currentAnimator != null) { currentAnimator.cancel(); } - if (mergedView == null) { - mergedView = BlurWallpaperProvider.getInstance(this).mergeLauncherView(getLauncherView()); - } AnimatorSet set = new AnimatorSet(); - ValueAnimator blurAnimator = ValueAnimator.ofInt(startBlurRadius, 0); + /*ValueAnimator blurAnimator = ValueAnimator.ofInt(startBlurRadius, 0); blurAnimator.addUpdateListener(animation -> - BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue())); + BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue()));*/ set.play(ObjectAnimator.ofFloat(swipeSearchContainer, View.TRANSLATION_Y, -swipeSearchContainer.getHeight())) .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 1f)) .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 1f)) - .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f)); + .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f)) + .with(ObjectAnimator.ofFloat(blurLayer, View.ALPHA, 0f)); set.setDuration(500); set.setInterpolator(new LinearInterpolator()); set.addListener(new AnimatorListenerAdapter() { @@ -3131,9 +3084,6 @@ public class LauncherActivity extends AppCompatActivity implements public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); currentAnimator = null; - mergedView = null; - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); - removeBlur(frontLayer); swipeSearchContainer.setVisibility(GONE); if (searchDisposableObserver != null && !searchDisposableObserver.isDisposed()) { @@ -3156,8 +3106,6 @@ public class LauncherActivity extends AppCompatActivity implements BlissLauncher.getApplication(this).getDeviceProfile().availableHeightPx); swipeSearchContainer.setVisibility(VISIBLE); showSwipeSearch = false; - BlurWallpaperProvider.getInstance(LauncherActivity.this).clear(); - mergedView = BlurWallpaperProvider.getInstance(this).mergeLauncherView(getLauncherView()); } @Override @@ -3169,8 +3117,7 @@ public class LauncherActivity extends AppCompatActivity implements mHorizontalPager.setAlpha(deltaAlpha); mIndicator.setAlpha(deltaAlpha); mDock.setAlpha(deltaAlpha); - blurRadius = (int) ((1 - deltaAlpha) * 18); - BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, blurRadius); + blurLayer.setAlpha(1 - deltaAlpha); } if (translateBy >= swipeSearchContainer.getHeight() / 2) { @@ -3185,7 +3132,7 @@ public class LauncherActivity extends AppCompatActivity implements if (showSwipeSearch) { showSwipeSearchContainer(); } else { - hideSwipeSearchContainer(blurRadius); + hideSwipeSearchContainer(); } } @@ -3248,7 +3195,6 @@ public class LauncherActivity extends AppCompatActivity implements int defaultHeight = activeRoundedWidgetView.getHeight(); int currentProgress = (defaultHeight - minHeight) * 100 / (maxHeight - minHeight); - seekBar.setMin(1); seekBar.setMax(100); seekBar.setProgress(currentProgress); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 84f1648737..fd86f7d15c 100755 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,14 +1,15 @@ - - @@ -36,15 +37,9 @@ android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:animateLayoutChanges="false" - android:background="@color/dockColor" android:columnCount="@integer/col_count" android:rowCount="1" /> - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/widgets_page.xml b/app/src/main/res/layout/widgets_page.xml index 988aae0b48..30cc0f5d8b 100755 --- a/app/src/main/res/layout/widgets_page.xml +++ b/app/src/main/res/layout/widgets_page.xml @@ -1,17 +1,18 @@ - + + - + + layout="@layout/layout_weather_info" /> + + android:orientation="vertical" />

xaGGBm!fg$K=Nea6AKyC!dgY@ecR~DC~=ISS9 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 iu>v*TK?!A7&Ynn+(v@ZI@(VKyGKiv;Y7jatgQr literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake new file mode 100644 index 0000000000..07f28e3cfe --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.0.0-36-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.0.0-36-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + +include("/home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "i686") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeOutput.log b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000000..7104fae4f2 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeOutput.log @@ -0,0 +1,443 @@ +The target system is: Android - 1 - i686 +The host system is: Linux - 5.0.0-36-generic - x86_64 +Determining if the C compiler works passed with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_b139e" +[1/2] Building C object CMakeFiles/cmTC_b139e.dir/testCCompiler.c.o +[2/2] Linking C executable cmTC_b139e + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_a0a2b" +[1/2] Building C object CMakeFiles/cmTC_a0a2b.dir/CMakeCCompilerABI.c.o +[2/2] Linking C executable cmTC_a0a2b +Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn) +Target: i686-none-linux-android16 +Thread model: posix +InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x +Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x +Candidate multilib: .;@m32 +Selected multilib: .;@m32 + "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m elf_i386 -dynamic-linker /system/bin/linker -o cmTC_a0a2b /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_a0a2b.dir/CMakeCCompilerABI.c.o -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtend_android.o + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(i686-linux-android-ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_a0a2b"] + ignore line: [[1/2] Building C object CMakeFiles/cmTC_a0a2b.dir/CMakeCCompilerABI.c.o] + ignore line: [[2/2] Linking C executable cmTC_a0a2b] + ignore line: [Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn)] + ignore line: [Target: i686-none-linux-android16] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x] + ignore line: [Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + ignore line: [Candidate multilib: .] + ignore line: [@m32] + ignore line: [Selected multilib: .] + ignore line: [@m32] + link line: [ "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m elf_i386 -dynamic-linker /system/bin/linker -o cmTC_a0a2b /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_a0a2b.dir/CMakeCCompilerABI.c.o -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtend_android.o] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld] ==> ignore + arg [--sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--hash-style=both] ==> ignore + arg [--enable-new-dtags] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_i386] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker] ==> ignore + arg [-o] ==> ignore + arg [cmTC_a0a2b] ==> ignore + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtbegin_dynamic.o] ==> ignore + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--exclude-libs] ==> ignore + arg [libgcc.a] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libatomic.a] ==> ignore + arg [--build-id] ==> ignore + arg [--warn-shared-textrel] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--no-undefined] ==> ignore + arg [-znoexecstack] ==> ignore + arg [--gc-sections] ==> ignore + arg [CMakeFiles/cmTC_a0a2b.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtend_android.o] ==> ignore + remove lib [gcc] + remove lib [gcc] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/i686-linux-android/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [dl;c;dl] + implicit dirs: [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/i686-linux-android/lib;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_5c527" +[1/2] Building C object CMakeFiles/cmTC_5c527.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_5c527 + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_7bac1" +[1/2] Building C object CMakeFiles/cmTC_7bac1.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_7bac1 + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_c1b24" +[1/2] Building C object CMakeFiles/cmTC_c1b24.dir/feature_tests.c.o +[2/2] Linking C executable cmTC_c1b24 + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_11303" +[1/2] Building CXX object CMakeFiles/cmTC_11303.dir/testCXXCompiler.cxx.o +[2/2] Linking CXX executable cmTC_11303 + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_54bdb" +[1/2] Building CXX object CMakeFiles/cmTC_54bdb.dir/CMakeCXXCompilerABI.cpp.o +[2/2] Linking CXX executable cmTC_54bdb +Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn) +Target: i686-none-linux-android16 +Thread model: posix +InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x +Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x +Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x +Candidate multilib: .;@m32 +Selected multilib: .;@m32 + "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m elf_i386 -dynamic-linker /system/bin/linker -o cmTC_54bdb /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_54bdb.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lc++ -Bdynamic -lm -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtend_android.o + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(i686-linux-android-ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_54bdb"] + ignore line: [[1/2] Building CXX object CMakeFiles/cmTC_54bdb.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [[2/2] Linking CXX executable cmTC_54bdb] + ignore line: [Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn)] + ignore line: [Target: i686-none-linux-android16] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + ignore line: [Found candidate GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x] + ignore line: [Selected GCC installation: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + ignore line: [Candidate multilib: .] + ignore line: [@m32] + ignore line: [Selected multilib: .] + ignore line: [@m32] + link line: [ "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld" --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -pie -z now -z relro --hash-style=gnu --hash-style=both --enable-new-dtags --eh-frame-hdr -m elf_i386 -dynamic-linker /system/bin/linker -o cmTC_54bdb /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtbegin_dynamic.o -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16 -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib -L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --no-undefined -z noexecstack --gc-sections CMakeFiles/cmTC_54bdb.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lc++ -Bdynamic -lm -lgcc -ldl -lc -lgcc -ldl /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtend_android.o] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld] ==> ignore + arg [--sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--hash-style=both] ==> ignore + arg [--enable-new-dtags] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_i386] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker] ==> ignore + arg [-o] ==> ignore + arg [cmTC_54bdb] ==> ignore + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtbegin_dynamic.o] ==> ignore + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib] + arg [-L/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--exclude-libs] ==> ignore + arg [libgcc.a] ==> ignore + arg [--exclude-libs] ==> ignore + arg [libatomic.a] ==> ignore + arg [--build-id] ==> ignore + arg [--warn-shared-textrel] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--no-undefined] ==> ignore + arg [-znoexecstack] ==> ignore + arg [--gc-sections] ==> ignore + arg [CMakeFiles/cmTC_54bdb.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-Bstatic] ==> ignore + arg [-lc++] ==> lib [c++] + arg [-Bdynamic] ==> ignore + arg [-lm] ==> lib [m] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [-ldl] ==> lib [dl] + arg [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/crtend_android.o] ==> ignore + remove lib [gcc] + remove lib [gcc] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/i686-linux-android/lib] + collapse library dir [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [c++;m;dl;c;dl] + implicit dirs: [/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/8.0.7/lib/linux/i386;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/i686-linux-android/lib;/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_39406" +[1/2] Building CXX object CMakeFiles/cmTC_39406.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_39406 + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_47d85" +[1/2] Building CXX object CMakeFiles/cmTC_47d85.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_47d85 + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp + +Run Build Command:"/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja" "cmTC_3c947" +[1/2] Building CXX object CMakeFiles/cmTC_3c947.dir/feature_tests.cxx.o +[2/2] Linking CXX executable cmTC_3c947 + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/TargetDirectories.txt b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000000..b63d71533d --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/edit_cache.dir +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/rebuild_cache.dir +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/hoko_blur.dir diff --git a/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/cmake.check_cache b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000000..3dccd73172 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.bin b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..63f5a914d62ba97feef207f0a56a17078f6b0227 GIT binary patch literal 8016 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 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.c b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.c new file mode 100644 index 0000000000..90a87b17ad --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx new file mode 100644 index 0000000000..a9b4791caf --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_aggregate_nsdmi) +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alias_templates) +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_attributes) +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_auto_type) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_binary_literals) +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_constexpr) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_contextual_conversions) +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_decltype) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_decltype_incomplete_return_types) +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_default_function_template_args) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_delegating_constructors) +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_deleted_functions) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_explicit_conversions) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_inheriting_constructors) +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_lambdas) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_init_captures) +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_local_type_template_args) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_noexcept) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_nonstatic_member_init) +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_nullptr) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_range_for) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_raw_string_literals) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_reference_qualified_functions) +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_relaxed_constexpr) +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_return_type_deduction) +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_rvalue_references) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_static_assert) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_strong_enums) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 199711L +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_thread_local) +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_trailing_return) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_unicode_literals) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_unrestricted_unions) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_user_literals) +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_variable_templates) +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __has_feature(cxx_variadic_templates) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..15c06ef379a720fc2b87d2e48a415b8089ddf54d GIT binary patch literal 59608 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[}K%ad7ISa<6%FmP}( zfdoORoAorv9Pq3c$QC8LZC@=yVN zR!Ln325~uE=*nm|Mh*jz3eb9GJ64clRx6MK&{#Bw7feQhBNWPHwc<#CF(Fr7voUgj z{0MR_qb6&)E(3!Ms#_UYdq9GqX*6&^fZfi(u^eg)V;1WgT?Pj5a%9$RAeG?Zbg);! zJvEMtFqP@7*WfB2fK-CyA!dTD1X}?fX6Il9EmsA3N}fXi%4D_XkcKf;!C}q8$f~Y~ z;$Dz346HUFL6A8}WS}$ZZU)F_?nT#agW8IHVx6R2*|aqY|Jc z^l}{F0SX2N1{PsfP-eIWwJVR9EUOWAnG_cZbC&EA*q*zh2u3$1Y#Bo2kUnOl=KX8GXpD+Ap?U9D0m=| z2oeNOK`^kYfn>nh2AtnO(F;yZV1j|w6(kK-4weS9K&r(USQBtaK_Z&99+xyEHs^t) z(Od*Icqa}isKGaINka_&4w44NK9X0V1`8Q6Fvwt$f*NdyOB!Nu07x2?lrRm>#vuhY zxC@sw#Nd@6X;8YvH24S(DX77ZaY;iAW->;ue!%$|mP=)ENI?y@!6gkbI2t4k$}yNO zF2f-OHFzp6X^6pFK+>S>hiUM698yq&-{F#m7|d(Jz#s$4%a{gh;E;kE?2bzsVsM%X zN=XU}-&!ofPy=URlY$tw8DtkYk0Ej!I7dPg@MV1RP~*SjRRgg{+7x?n0CT-HK6$7; z@p#oh>}dw6LCbK+{#lGq9%|2VylNo!yauU3%bLjcaGNnO$l#KP+M|zG4aA;ckQ%g{ zifm6YK6$7;)A6c-*s~j?22?vCrB-BnZsU`O+VdZ;8i+m0<_runX!#h~9%p>=P|LdK;S*$m^x6iXaA7K`SfSohZNM{`M9JZ2JZt&gJJ;F;F~z4pa%cIB@HoH+ywFtaTKgA5j(A`pX>K+>R; zhiR}a4k@U?F}S2523Om{a~g8^PQoG#HE=C9DTrYwKz1QYJg|YFvVej05l9A zK>lZ7&BrDM3IGPyE^Jbu5MW?kYR|wR170xzuI)g}2EdDY7&wmFL;Khctf%Y|gC>UX zL6Zme3=HBR&#=A%83JA&0X76=90TirkRaGRxFBT711l)lSmhkxK?70`Sv|;V;(+2D zP`%5*>Io7AF(J_pRt{Q_#=x44W(Y_T18XHnJ;FJl1r-b&Q$Py>LBmmwtTP=D-Z6rE zXFW(4cxfNly;Tr`kh#BBI!4l1DVFa$iVs@q#vXf;!3bdAVU~fIUV6% zg^NOym5L(+gA90i5ZqD*4tqyv$UC#TI3k>C0=Fs(qzk-U2uW8dOqUC56_PGfxULBx zUEt+INV-`pcbF z#tGps3%D*LCk6%?@Ny$0UA{0~9;`t~x-8+kGC;b(%a4$BHN$jyvUVWpvV!ZH2hs&z zj)bIZCrppmo1)^J@{K)OI_4-(1Xm;-ScSl@wUKx^C}GT_*O$bgChR$gZY1{u)0 zA&4|M8X(f(9Hax12CZs?NQ1*0A`L1MSiM2gpyg~3X>hP>QLJI6( zu=hbOVqpD?kOKP^>~)BggbUn2us^}xhDaGBq`-azdl@3-hmZpM5A0otR3<_S>^HDi zAyO>}DX_o5-h@caM@WJF14IQuyDEfq{byw4M-D>$EDf@-Q}nN6A5z6k`)) zL>tU*Mq0ww!ok35>5gGK1FIjZAgH2YU`<991g~CXt#D^xV6Am$VBqM0+1?8~eno}_ zeEf5EZ%X!N4E_T7HM5O9dg1B&voG6$xU%T*0Y< zB#$tafz{B1fkE8NgMk6!S_MX4h-*QXGV-x7fSnHJ@UtMv2(WN~WmbYbCB(u5=IjJ< zgjoc@9I%WCiwKx=10*BLA_3-rm5H&)FtD!kfCV}z{1{mGq41G>&kCw9Snr}rBfQB9 z3Ut;#9`Ga&Zmu9QAEa=Q@x&z$o|Iv=@nm3-0eKZtCWD$V&|)bJp%W|$Rs@PW2G&B5 zCeSiYh$e6nLCh`suuep11*u|ST?Enq%Hm)R46K_#e2_LU9~{{tpghFDdIlr|whH8X zXyfG}NDw3sQ4Z3`!1@g&2wKjGB*>u#srVTf>sdjws^FuJazWW5RMU%r!A6RKK^1yD z6Q?%=gBsIB@BvGV)!;o2YD^QsCoC~mgSR0tfOR*5b*FnVFgQr#&^-ZF_XO}J0yU(- zX-SDDiOJ@si3Wy=iDnkYDdvf$Nrr~WDVhozaPRr}g!w}JQe2j&2`W7x0m8so6~w?; z!@(%c!@|Qop z)^?U=X68mF9u^iy9##$paI(sQ+69gim|9PWTBZbunV{r11*#4lXXxrmAnKf1Kok59 zObiT+jEukectI5CP%lOX21fmi{M=Oi#N5mheP~4M2d8A~=cQ!p8yV;s>X}-aSXi2v zAmXZ69~7Ya1x2YzrI|S;`Z<|-r4_mr7H08gCi=yd#YOq~CHkesMf#a}$vLGdsSGr? zK|fhrTffW@*`k7?{H)aEl45aZfFDow- zStAv~ASW})%mk96^}#uTjv)cfY77ind6{|{42%p6@$q@3IXML-MGQ;~48MuZ6xjI4rO zOkpCdoNOE=Z0T&wDG{vVY|Qd{tny5{!mKJFgKb#NIZ9YLL56Wfvnn;SsMN~}t3HmtfftXy8qJL;KK7+D$Fm`^cq%wuETR^PKdgjI4ZIOe#XG zl5Bdc#`9RMN?7@9SlOAhg_t;y)J zk3-|9q4BfP_(f>^Iy8Pe8owWnKMjpP8;!phjlUj^zXOfGAB}$$jei=Ae-(}Y5{>@_ zjsFjgF9<%X6A@q1XnYkkz8Mp zaWwu-H2w=T{%15k6R42_3N8jn`W8Ur%cAjh(fBrKd`~ofC>lQ#jbDn!uSer|q4DRS z@t2_S*Q4<_qVYGQ@wcM!kD&3-qw#N`@$aGWAE5D{q47VU@qeK4|D*94LDer({4k^O z1=0A@XnbWfz9t%98;x&>#s?kb3$`AbKCIB>9ntunXnb!peh?Zz5sjaR#;-!-ccby= zqVdi9j#uo%NT9DkYg~oS5 zH2wxO{s}bx12p~*G`=8sTnph}Ei}G88b1_`pN+XnY?u zej*yb9F5v>l_=aeFcQk$&8b1z=pNhsW zLE|@}@%z#EOVRkd(fFs)__xsbFVOg3(fE+V@)7=r%xxg}lHf@U1YZ@6Z-B$1kjsF0R{}zqU3O{}Vl76Jn`1)vk zS2TVk8b1$>--5=UjmF=O#=n5Ze~HFt76!#72t(W}jm9@YJTGa5e}jh~6euR-HaK;th(<8MXd??U4rLF1o7 zI`=IeN(D>D8{26HcV`%)BXnaO7P+Wm9 z#J%Qde0wy$8yY_hjh~6eZ${%UMB{Hpqc`~t!d|A?dU_0afk zX#8+Aeijpw%zg#n2`!lw>R{VX&-^d%-~~45c1k+{2(-b6&imY8vh^~{|Opj2)qRx zVV^S^zZ#9d2#tRMjsFvkZvdN6gto6T(fBLT_z%(e(y}18fiNU|W6<~$(fB9O_-t|@ zy&w$HZ;i$;LgQ~h<3B^=%gKYx0%3@Gv1t5>X#C@7d=~JYV1#~4G=2dZe;peC2^wEU z5o8t!L);UM#-D`7KaIxcRs!h-VTgVQG=4c6e=8dQKN{a#8Dtg+L(H3p#(#;%Hv>)n zf|NtkM;99Z5*lAd6|9&6mj80m_*>EV|IzpXu!R#)`(~o?pP=#0)KTrLMdKes4AFQHsVtfyNimMpYk$#$S!bzl_Fb zh3?6Rg}((FKLd?F1C4(YjsF9UuL0c`4>La!jo*#NKY+&ng2q>cZd8Yv2ioio2?0p_ zbfC%aK;yqe<4Z#~YQxO)L*v(?@pq!}zoYSOpu3%6=2fEcccAhAq46yYA-;j>FG1sP zN8^7)Mua!uSVm)K;!Eeqv}sZ<1awtKSJZnn4s#9K;zFw<6lGL3!9?q4@cuq zM&n;ZJLEU_n`65qw)Wu@lDK8&C5aKFGS;CL*w&Upz3!(#+S4~ zHQyeM58C1cQ2{9rK*vZS^FiB@kolnfN6376TL=%9|E$sY5or8kG=4uCe+?S{6dIq| z4%I$0G=3%;e;ykDJQ|+~x+ewZeseT_9vXiQ8vh9zUk0`~3|ha2q49gr_(#zA|IqkW z(0vgw_Z6e@m!a`*qVf5l`ww9H?a}x}X#C}9{CjA831`&s_d(+~pz*h%@n4|vWn56r z3qs>}q4AHR@!z5Gg+V9bf{lcvXLB@u1RB2ujlUU<{|t>U2RdIC$$T#~el;3@2^#+b z8vh*{Ul_W;8WvwpX#65H{%kbuyG`=PpUmuNcg~oSA<9ng;1JU>qX#6-degPW49F5N?G<8RW`K8Xq4tA@R=6^m7(5vm7?^XJ7?yz6 zz2!4890Jj)Obp*ZbQ%+b1|tIlOBNG@6%zvkOF9!n7KqMfVklvP=mV{}V##4*01f4V z%!AROsd&aDCI--y7$XzpQd-cB#GoN3#uO$7(9i@U3j+hFOUanb!~p7gFmf?4fSQbq zYzz#brU)ZD0|ThaVdP+702NJ)oD2*;pq1;a3=EMVnwxBv%bSMME91v~C#IOoP+cPn21JUtJ3$R%GBL=3Xg4MX9T4r##9$4gJ(w80Ky)AzLnMd}Vq(Yu z(ZNg%r~%QDj0_DRT9tueI*5*9WB{$5W7J?^*aYH7Gcs%g(b^0Q*Fkg)Bg1VF zZNR|r2}H*-GJFHkh71fs%nS^Saf}RNAlit5!5l=#Gcs6%Xk!M3AP}9v$N*Z4#%RXC zPz2&9GBT8bXmbXJ4iKHh$j}3#Ef^SPf#_sLhIt^`l7RuVri?L#kzoUfZ^giH7(}Ns zGJw{SFM|hwq;-tVPRlk%wS}Y0MT{~4B8+%laWCm zMB6hkIDzOaMg}(!?ZCj01fsJU8PY(sBLhP%h|XbTXavzt3=A_sbS@(UXl)mxGXn!? zjTU1bBg1x(xC;Zr6%d`z$N*Y<#puew@Ds!@U}X3UqCFTGDtM#DeHl28KEiUBbxF1ftUz80LfMQbvZwAUd6a;RuK>V`Ml1 zqB9s6UV`XyMuxW_I+KBci;aPSv4W9-4@74%FzAEmN=61_5S`7y5CWpB7#Si!bPfYU zDTuCSWT*tuxeN@mKy(cw!#oh3$H1^3MAtGh90t+(3=9uIbR8qZ6A)d%z`)85K6;aZ z6GRs>Fld4321W)w5M9K;;0>Z185#URbTI=%0f=s5WGDgAB@7HxL3A@C!%Pre%D}J< zM7J<9>;lnc3=FqHbSopneGpyFz`(!(K9-Y#1w>acFerlPc18wO5M9Z@;0B^Q7#X}k zbQJ?bHi+(IWXK26)eH5WRqr;SPwN#K6GB!@$6}kdc86L{Da5&;Zek7#Vax z^b`h$AP~Knks%C3Pi0`J0ntks85%(JGzNx6AbKey!!i&(oq^#Dh+f9XZ~;WmU|{$L zqL(u=`~uN485m@E85kH>Ffu5B=vfR5ZXkLkBZC)+p3T5e0HRkhGL(SmISdTbK=f)x zhFKtbE(5~>5WR+x;RuMH$H4FkM6YFJcn6~AGcfS*F)%Q$V`LBj(F+(Dj6n2yMg}tw zy^w(+0z_|MWQYOLix?PcLG(sOhDH#*n1KPb27+-DBf~-ve+dJ_UJ$*Rk>MbSUdq65 z7esGiWOxXomoYH>1<_j>85sFNC+ssY$b#r?j0}n(dIbXmXiWp-c18wA5Pu~DLoA5i z!N`yZqE|66)Pm@pj0}w+dNl(BXw3rSE=GohApRN#hJ7G85j%&85kIkF*2Bf=p76UVIcZABSRF3-pRmF4x&#mGE{@;T?`DMId#U9 zj0_7v{M`%;2SM~HMuwvxdJhA`BM^O>k>MGL-pjziF2umVc!rUI8$|D8V9){4XBim` zK=ghF244_;j*%e{L?2*aC<4*v85znz^g#xO=^*+7BLirzoAD3>!wwMtA|t~d5Pg_| z;Vy{2#K`avL?2;bU=n6vV7$!8zy_j^GB7BE=qrp2>LB_U1A_;MzRJkp1EP;JFyw;h zYm5wqAo>IYLm!B~&d30oyJkGez_1y_zro0`9YmjEV7LLIZ!$960nw)!7=D82TZ{~U zLG&30200N12FBZr3`!vSECT~*&YAHJBZE7Le~y761w`LvWXJ%~=NT9}LG(RFhF%bT zfq`Kih`!Irun9z8WMDWAq8~6aoCndD7#Kiv!i*0Y89spcml+s%MHv_vA2Birg6Jy@ z3`QXOF(ZQ+h`!3e5Co#1FfxRJ=xYoNMIibqBSRU8zRtif2}D0*WS9n`Z!j=y0@2SI z8McAwn+yz>K=cbnhHD`D76Zd45dD&o;Twp)&A=ce#=yY%ijhGKMBiaxFapu985zt# z^j!vqAQ1hAkpVP!%Xp80p%}z}%g9g;qVF>>OaamF7#U`O=m!i8TS4@DMuwdr`XK|u zH4y!Qk>M7Ie#F4=9YlX*WcUrDA2TpWh%+!Seqv;h0ntww7%V~bXGR8F5dD;aAqqr) zVPuE{(a#tdszLNuMuvJ2{hWbeHi-Vl$S@y7zhYq62BN<+GVB7;uNfGwf#@HM47Wh^ z8wQ3?Ao?dG!#5E9mVtp+f`NhY7bAlphd;Ao?F8Lo9z_3VU@!yGEKCemAexDhArM5fGBJdL zX+{Rny&Q~eObnnqIT$$@8QMYO>`V;ZAex(zVG)StU}9JXqWKsZ_JU|mCWeC`T9A?9 zE{Nu0Vt5Fmg%}zBf@p3g@Rbpa!i)^EQVa}?JWLFVAX>cm$%Q z7#aS9XkjMs@!gElj0_6W3=E7SObjX@T85Fq5k!kJF}Q+gSw@B=5G}^UkOrdV7#W&D zv^Wz(JBXHNWLN^CC72jifM^9qhNB=_l8NCYh*o4|cnzYZm>AxJXeCAlK^X=HMrkGn zQ4p=n$Y2hlWtbSOL9_}ZLoA4vWnxGK(W;CL%^+HiiJ=`tt1&Ww=6o6DnHbiB`09)d z=Rvdr6T@W?t-;9f6+|mCG5iG4nv4vfIbcR5CI)#~1_nkgMg~U^t<1#W3Zk_c8PY+t z3KK&%h}L0b=mpWLObnp8VMbj>hRq}6tL1JRz03`!u{kcmMJ zM0+tZID=>-CI)v9?aj!L45E#h7}7zs4=~j103tv?&wAJP_^A$gmMa zn=vtL1gLOB8awUV8{j04h#&H zAli|Ep%p|sF)&O7(asDEb3wEV1H(!X?aIKg6-0Y5FdPKY$qWo~dU|_6cU=Re+^$ZNMAi9Bp zK@&tbGBB8e=q3gRM-bi2z~Bp_TNoIkKy)huLpq3VV_+x&(d`TjjUc*%fuRpXcQP={ z2GLy%3@bo%Hv_{~5Z%MTa0o>AGBBJ6(R~aIcR+MM0|RKS0OJG(hHoJLLz zNem1^AbK(bg93=2!oZ*hqNg%2*nsG13=Cc%dO8C`1c;u&z>o%_XEHF9faqBa3{4<< zHUq;15Iu*1VIGK{%fPS(M9*Vj*af2JGccS0(F+(Du7T)<3=B^|^dbg^Pat|R0|SF9 z0|Vm{1_nM5y%cmNIRgXZG6n`M5PvxXg9V6Q!NA}KqE|97gn;N(3=ByidNl(>0f=71 zz)%OG*D^5lfarA$46{J=dIp9SAbJA>!!{7Tk%8d|h~C7&a0x_jW?*;#qPH+GyaUl& z85sV6=xq!PTxtvqpmwhWh~B}#pa!CMGBB8c=v@p9P9SY(cp7#KuA^eF}gB@lg@fx!SopJ8CI1JP$07<@qVIR=I(5PhD3 zAp=BTU|=W%(H9vQT0rzA28Kx>`Z5E<0uX(LfngnpzRJL`2Si_EU^oS$uQM>*0MR!X z7@mRXn+yzJK=dsJ1||(q`;~z~07TzmV2}gRcNrLTK=eHZ1}hMKpMk*xL_c6)2m{d% z85mMP^dkm_A`tzUfuR9JKVe|#1JO?z80LWJXABIhK=gA4h8-aK6$8UD5dE5g;R=X; z!@%$eM89QV_yD5cF);iC(eD`;cr+Op7(XyDNP*~&3=A3|`U?Yt8HoPQz~BO+e=slv zf#{zM3<)6m4+8_}PzT2U3=B0OJ`*ED7l>wMWS9Y>IT#t1foN_MAJ7G-4M&|+X<6k}u%1JUA)3@RX6f|0=pL`yO}$glxKD={+c1JTNi z3}-;J3M0cU5Ut9{@B&1uF*1Au(dvv0EZX3Uo*0Bcv?e2i0*KaPWY7cA+Kdb~AXg-aM4K}*tO3y$j10R#v?U|M z2@vhh$Z!ordoVIQ0nwg}44*(WXiyh)`<*u<10RU?VPud2(Y}lfS|Hk=kpZ+ehB1JV z!41R@WMl{d(Lsz1Ngz6yk)Z%YhcGfs2GQaS4D&#=7z4vf5G~5UumMDiFfbed(Gm;{ z??JQ-1H&H>EzQ8d3%X5Dih)5MM9VTTXn|-s1_l=pt;E3K526(r7@|P50s})Lh?Zwy z$N|yH3=9iFv^oRBS`e+qz;GHwYcVif2ho}g4F5s2J_7@n9s>iT9s`3Yhz4Cz0ityn z7`i~TDFefF5N*Q1Fb#CWojU`=LJ;l7z;FvhCowQQg3_-*v?l|@HxTW`z`z8$1<#v- zfe%CnFfd4g=uid*H4q)fz+eQTqZt_NKy(}fgBOTSWMGH}(f$k!X&~Bm4oxCNqP7#N;{=mZ9aHy}Emfnh)B;-Z%f3}-;}3kHTh(8WTZ85m}R=uZp`=Rou~ z28P=p`YQv2CFqi%-wX_HAo>>rLq3T9$G}hnqW>~5ECtbwj0~GVGy@~UZ4k}E$nXM0 zGcz&>g02T*XJn8A(QJ$i?jV|rks$;`b22j2f@oewhAt4z!^p51L<=x7901Y$j0`NG zOJ__O83aJI5hH^Ph&E;lo&j11R6v=bu(Xik;UhLHg@cgpC@$N-u%Wwd2v;PC*>k1#R_fM`2L1`7~v z&&c2iqWKvZ{6Mq-14A^37Gz+^0MS;A45c92nvtOiMB6Yj^n++yMus^c+K!Q-4Rjri zA0q>|7Xt%men=cdConPSg6K#l21^hf#l+wNqNAA@LP2yQ6GJwLj$~pe2hmYX3~eAf zhKXS+h>m4qSO%g4m>4#JXip}FeIVM0iQyE8_GMzY2BQ6#7#@LWeV)42V_>H<`knz zAxY>JrRG4*E=tTxPc3GE@`_7}81&MM@=FUCP|jfiTdkLzlbBn;0M-n0ik??uSz>&0 zer|k5es+F5==_@a(vr-ac!*m-hq%NSr55BQCZ|F~V7BBYCTHfQKNvfW^U#Kov0%8oJlRZ%B=T=M+^)hH{F3@}^=;9kFA2h!W zJ~s-=2hBl)n6uE-f#$ivXGeh~A;ZOB)-(nN2KaVekoa*1h5*R$4>(VOjuHUnDbRc_ zd|MI&1H%u{7&}xQcrF_1#%$1hD9C+~tjXZO%)kJeI|o|^G9SuFXN1}dRhMuaJY@tL zb^@;gz-2GX0?;ZI@bDA^=-d*JIuO=Ivllck37VsaS_du%Kx}n1doz&i1+6v!nFaE1 zHZ=TTOFs=+7#P;V*EKMJjz>blAhSXEo(}`Vbx=ftI8ZY{%qK`}5Pz#50|P(obTuTo z2Wat8aGZhRffU5Qply^e_r)UV0hxDXCIbU}Su>IxXnr0!eghss&JqJ{fdHiyn0XhG z^nlEJGZW%R5F3PHUIJ~s0kL7>@^&Tz11CrTqzGyTh${|_52!H1H&B9vaiHoz+-*>G z&}6{yV-^F$4v+*CgWLyVg689q{W0MYL#hlCAi?jEEL6pjE^UeW6S literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..e799bacd73c5f6c0311b36f2ec3f49d6847e59be GIT binary patch literal 64120 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 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o b/hoko-blur/.cxx/cmake/debug/x86/CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..c0edbd070e0122658ddbbd29fe026696e7674890 GIT binary patch literal 66676 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 literal 0 HcmV?d00001 diff --git a/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build.json b/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build.json new file mode 100644 index 0000000000..04239aea8d --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build.json @@ -0,0 +1,59 @@ + +{ + "buildFiles" : + [ + "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt" + ], + "cleanCommands" : + [ + "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 --target clean" + ], + "cppFileExtensions" : [ "cpp" ], + "libraries" : + { + "hoko_blur-Debug-x86" : + { + "abi" : "x86", + "artifactName" : "hoko_blur", + "buildCommand" : "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 --target hoko_blur", + "buildType" : "debug", + "files" : + [ + + { + "flags" : " --target=i686-none-linux-android16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BlurUtil.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86" + }, + + { + "flags" : " --target=i686-none-linux-android16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/StackBlurFilter.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86" + }, + + { + "flags" : " --target=i686-none-linux-android16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/GaussianBlurFilter.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86" + }, + + { + "flags" : " --target=i686-none-linux-android16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dhoko_blur_EXPORTS -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 -c ", + "src" : "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BoxBlurFilter.cpp", + "workingDirectory" : "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86" + } + ], + "output" : "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/x86/libhoko_blur.so", + "toolchain" : "5697535246732911383" + } + }, + "toolchains" : + { + "5697535246732911383" : + { + "cCompilerExecutable" : "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang", + "cppCompilerExecutable" : "/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" + } + } +} diff --git a/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_hoko_blur_x86.command.txt b/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_hoko_blur_x86.command.txt new file mode 100644 index 0000000000..de0d40674e --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_hoko_blur_x86.command.txt @@ -0,0 +1,8 @@ +Executable : /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +arguments : +--build +/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 +--target +hoko_blur +jvmArgs : + diff --git a/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_hoko_blur_x86.stderr.txt b/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_hoko_blur_x86.stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_hoko_blur_x86.stdout.txt b/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_hoko_blur_x86.stdout.txt new file mode 100644 index 0000000000..964c94da09 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_hoko_blur_x86.stdout.txt @@ -0,0 +1 @@ +ninja: no work to do. diff --git a/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_mini.json b/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_mini.json new file mode 100644 index 0000000000..ec0a6b081f --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build_mini.json @@ -0,0 +1,16 @@ +{ + "buildFiles": [ + "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt" + ], + "cleanCommands": [ + "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 --target clean" + ], + "libraries": { + "hoko_blur-Debug-x86": { + "artifactName": "hoko_blur", + "buildCommand": "/home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake --build /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 --target hoko_blur", + "abi": "x86", + "output": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/x86/libhoko_blur.so" + } + } +} \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/debug/x86/android_gradle_generate_cmake_ninja_json_x86.command.txt b/hoko-blur/.cxx/cmake/debug/x86/android_gradle_generate_cmake_ninja_json_x86.command.txt new file mode 100644 index 0000000000..f38e2b6f0c --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/android_gradle_generate_cmake_ninja_json_x86.command.txt @@ -0,0 +1,17 @@ +Executable : /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +arguments : +-H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni +-B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 +-DANDROID_ABI=x86 +-DANDROID_PLATFORM=android-24 +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/x86 +-DCMAKE_BUILD_TYPE=Debug +-DANDROID_NDK=/home/amit/Android/Sdk/ndk/20.1.5948944 +-DCMAKE_CXX_FLAGS=-std=c++11 -frtti -fexceptions +-DCMAKE_TOOLCHAIN_FILE=/home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja +-GAndroid Gradle - Ninja +-DANDROID_PLATFORM=android-13 +-DANDROID_TOOLCHAIN=clang +jvmArgs : + diff --git a/hoko-blur/.cxx/cmake/debug/x86/android_gradle_generate_cmake_ninja_json_x86.stderr.txt b/hoko-blur/.cxx/cmake/debug/x86/android_gradle_generate_cmake_ninja_json_x86.stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/hoko-blur/.cxx/cmake/debug/x86/android_gradle_generate_cmake_ninja_json_x86.stdout.txt b/hoko-blur/.cxx/cmake/debug/x86/android_gradle_generate_cmake_ninja_json_x86.stdout.txt new file mode 100644 index 0000000000..fb38ebcca6 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/android_gradle_generate_cmake_ninja_json_x86.stdout.txt @@ -0,0 +1,16 @@ +-- android-13 is unsupported. Using minimum supported version 16. +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Detecting C compile features +-- Detecting C compile features - done +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +-- Detecting CXX compiler ABI info +-- Detecting CXX compiler ABI info - done +-- Detecting CXX compile features +-- Detecting CXX compile features - done +-- Configuring done +-- Generating done +-- Build files have been written to: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 diff --git a/hoko-blur/.cxx/cmake/debug/x86/build.ninja b/hoko-blur/.cxx/cmake/debug/x86/build.ninja new file mode 100644 index 0000000000..0212732001 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/build.ninja @@ -0,0 +1,147 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.6 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Hoko_blur +# Configuration: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include rules.ninja + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 && /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 +build edit_cache: phony CMakeFiles/edit_cache.util + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 && /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake -H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni -B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 +build rebuild_cache: phony CMakeFiles/rebuild_cache.util +# ============================================================================= +# Object build statements for SHARED_LIBRARY target hoko_blur + +build CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BlurUtil.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BlurUtil.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir +build CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/StackBlurFilter.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/StackBlurFilter.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir +build CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/GaussianBlurFilter.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/GaussianBlurFilter.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir +build CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o: CXX_COMPILER__hoko_blur /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BoxBlurFilter.cpp + DEFINES = -Dhoko_blur_EXPORTS + DEP_FILE = CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info -fPIC -fPIC -std=gnu++11 + INCLUDES = -I/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/include + IN_ABS = /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/BoxBlurFilter.cpp + OBJECT_DIR = CMakeFiles/hoko_blur.dir + OBJECT_FILE_DIR = CMakeFiles/hoko_blur.dir + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target hoko_blur + + +############################################# +# Link the shared library /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/x86/libhoko_blur.so + +build /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/x86/libhoko_blur.so: CXX_SHARED_LIBRARY_LINKER__hoko_blur CMakeFiles/hoko_blur.dir/BlurUtil.cpp.o CMakeFiles/hoko_blur.dir/StackBlurFilter.cpp.o CMakeFiles/hoko_blur.dir/GaussianBlurFilter.cpp.o CMakeFiles/hoko_blur.dir/BoxBlurFilter.cpp.o | /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/liblog.so /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/libjnigraphics.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -O0 -fno-limit-debug-info + LINK_FLAGS = -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -static-libstdc++ -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -Wl,-z,noexecstack + LINK_LIBRARIES = /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/liblog.so /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/16/libjnigraphics.so -latomic -lm + OBJECT_DIR = CMakeFiles/hoko_blur.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libhoko_blur.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/x86/libhoko_blur.so + TARGET_PDB = hoko_blur.so.dbg +# ============================================================================= +# Target aliases. + +build hoko_blur: phony /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/x86/libhoko_blur.so +build libhoko_blur.so: phony /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/x86/libhoko_blur.so +# ============================================================================= +# Folder targets. + +# ============================================================================= +# ============================================================================= +# Built-in targets + + +############################################# +# The main all target. + +build all: phony /home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/x86/libhoko_blur.so + +############################################# +# Make the all target the default. + +default all + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompilerABI.c /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompilerABI.cpp /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCommonLanguageInclude.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompileFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompilerABI.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeFindBinUtils.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeGenericSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeLanguageInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeParseImplicitLinkInfo.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystem.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInitialize.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCompilerCommon.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/GNU.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Internal/FeatureTesting.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Android.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Linux.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/UnixPaths.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/platforms.cmake /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt CMakeCache.txt CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx + pool = console + +############################################# +# A missing CMake input file is not an error. + +build /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCCompilerABI.c /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompiler.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXCompilerABI.cpp /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCXXInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeCommonLanguageInclude.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompileFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineCompilerABI.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeDetermineSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeFindBinUtils.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeGenericSystem.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeLanguageInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeParseImplicitLinkInfo.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystem.cmake.in /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInformation.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeSystemSpecificInitialize.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCXXCompiler.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/CMakeTestCompilerCommon.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-C.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang-CXX.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/Clang.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Compiler/GNU.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Internal/FeatureTesting.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Android.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/Linux.cmake /home/amit/Android/Sdk/cmake/3.6.4111459/share/cmake-3.6/Modules/Platform/UnixPaths.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake /home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/platforms.cmake /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt CMakeCache.txt CMakeFiles/3.6.0-rc2/CMakeCCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeCXXCompiler.cmake CMakeFiles/3.6.0-rc2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx: phony + +############################################# +# Clean all the built files. + +build clean: CLEAN + +############################################# +# Print all primary targets available. + +build help: HELP diff --git a/hoko-blur/.cxx/cmake/debug/x86/build_command.txt b/hoko-blur/.cxx/cmake/debug/x86/build_command.txt new file mode 100644 index 0000000000..f38e2b6f0c --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/build_command.txt @@ -0,0 +1,17 @@ +Executable : /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake +arguments : +-H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni +-B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 +-DANDROID_ABI=x86 +-DANDROID_PLATFORM=android-24 +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/x86 +-DCMAKE_BUILD_TYPE=Debug +-DANDROID_NDK=/home/amit/Android/Sdk/ndk/20.1.5948944 +-DCMAKE_CXX_FLAGS=-std=c++11 -frtti -fexceptions +-DCMAKE_TOOLCHAIN_FILE=/home/amit/Android/Sdk/ndk/20.1.5948944/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=/home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja +-GAndroid Gradle - Ninja +-DANDROID_PLATFORM=android-13 +-DANDROID_TOOLCHAIN=clang +jvmArgs : + diff --git a/hoko-blur/.cxx/cmake/debug/x86/build_model.json b/hoko-blur/.cxx/cmake/debug/x86/build_model.json new file mode 100644 index 0000000000..36f2eeb944 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/build_model.json @@ -0,0 +1,74 @@ +{ + "variant": { + "module": { + "rootBuildGradleFolder": "/home/amit/projects/BlissLauncher", + "sdkFolder": "/home/amit/Android/Sdk", + "isNativeCompilerSettingsCacheEnabled": false, + "isBuildOnlyTargetAbiEnabled": true, + "splitsAbiFilterSet": [], + "intermediatesFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates", + "gradleModulePathName": ":hoko-blur", + "moduleRootFolder": "/home/amit/projects/BlissLauncher/hoko-blur", + "makeFile": "/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni/CMakeLists.txt", + "buildSystem": "CMAKE", + "compilerSettingsCacheFolder": "/home/amit/projects/BlissLauncher/.cxx", + "cxxFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx", + "ndkFolder": "/home/amit/Android/Sdk/ndk/20.1.5948944", + "ndkVersion": "20.1.5948944", + "ndkSupportedAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkDefaultAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "cmakeToolchainFile": "." + }, + "buildSystemArgumentList": [ + "-DANDROID_PLATFORM\u003dandroid-13", + "-DANDROID_TOOLCHAIN\u003dclang" + ], + "cFlagList": [], + "cppFlagsList": [ + "-std\u003dc++11 -frtti -fexceptions" + ], + "variantName": "debug", + "soFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/lib", + "objFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj", + "jsonFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug", + "gradleBuildOutputFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug", + "isDebuggableEnabled": true, + "validAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86" + ], + "buildTargetSet": [] + }, + "abi": "X86", + "abiPlatformVersion": 24, + "cxxBuildFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86", + "jsonFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build.json", + "gradleBuildOutputFolder": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/x86", + "objFolder": "/home/amit/projects/BlissLauncher/hoko-blur/build/intermediates/cmake/debug/obj/x86", + "buildCommandFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/build_command.txt", + "buildOutputFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/build_output.txt", + "modelOutputFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/build_model.json", + "cmake": { + "cmakeListsWrapperFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/x86/CMakeLists.txt", + "toolchainWrapperFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/x86/android_gradle_build.toolchain.cmake", + "buildGenerationStateFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/x86/build_generation_state.json", + "cacheKeyFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/x86/compiler_cache_key.json", + "compilerCacheUseFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/x86/compiler_cache_use.json", + "compilerCacheWriteFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/x86/compiler_cache_write.json", + "toolchainSettingsFromCacheFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cxx/debug/x86/compiler_settings_cache.cmake", + "cmakeWrappingBaseFolder": "." + }, + "jsonGenerationLoggingRecordFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/json_generation_record.json", + "compileCommandsJsonFile": "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/compile_commands.json" +} \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/debug/x86/build_output.txt b/hoko-blur/.cxx/cmake/debug/x86/build_output.txt new file mode 100644 index 0000000000..f253afd27a --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/build_output.txt @@ -0,0 +1,16 @@ +-- android-13 is unsupported. Using minimum supported version 16. +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +-- Check for working C compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Detecting C compile features +-- Detecting C compile features - done +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +-- Check for working CXX compiler: /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +-- Detecting CXX compiler ABI info +-- Detecting CXX compiler ABI info - done +-- Detecting CXX compile features +-- Detecting CXX compile features - done +-- Configuring done +-- Generating done +-- Build files have been written to: /home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/debug/x86/cmake_install.cmake b/hoko-blur/.cxx/cmake/debug/x86/cmake_install.cmake new file mode 100644 index 0000000000..c5c1af3f90 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/cmake_install.cmake @@ -0,0 +1,44 @@ +# Install script for directory: /home/amit/projects/BlissLauncher/hoko-blur/src/main/jni + +# 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 "1") +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 "/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/hoko-blur/.cxx/cmake/debug/x86/json_generation_record.json b/hoko-blur/.cxx/cmake/debug/x86/json_generation_record.json new file mode 100644 index 0000000000..d981fa7328 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/json_generation_record.json @@ -0,0 +1,14 @@ +[ + { + "level": "INFO", + "message": "Start JSON generation. Platform version: 24 min SDK version: x86" + }, + { + "level": "INFO", + "message": "JSON \u0027/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86/android_gradle_build.json\u0027 was up-to-date" + }, + { + "level": "INFO", + "message": "JSON generation completed without problems" + } +] \ No newline at end of file diff --git a/hoko-blur/.cxx/cmake/debug/x86/rules.ninja b/hoko-blur/.cxx/cmake/debug/x86/rules.ninja new file mode 100644 index 0000000000..6810e38e08 --- /dev/null +++ b/hoko-blur/.cxx/cmake/debug/x86/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.6 + +# 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: Hoko_blur +# Configuration: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for compiling CXX files. + +rule CXX_COMPILER__hoko_blur + depfile = $DEP_FILE + deps = gcc + command = /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $IN_ABS + description = Building CXX object $out + + +############################################# +# Rule for linking CXX shared library. + +rule CXX_SHARED_LIBRARY_LINKER__hoko_blur + command = $PRE_LINK && /home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android16 --gcc-toolchain=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/amit/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/amit/Android/Sdk/cmake/3.6.4111459/bin/cmake -H/home/amit/projects/BlissLauncher/hoko-blur/src/main/jni -B/home/amit/projects/BlissLauncher/hoko-blur/.cxx/cmake/debug/x86 + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja -t clean + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/amit/Android/Sdk/cmake/3.6.4111459/bin/ninja -t targets + description = All primary targets available: + diff --git a/hoko-blur/.cxx/cmake/release/arm64-v8a/.ninja_deps b/hoko-blur/.cxx/cmake/release/arm64-v8a/.ninja_deps new file mode 100644 index 0000000000000000000000000000000000000000..a642c6407e72e97426955b0df742853ef598020a GIT binary patch literal 9264 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